Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie
Hi all,
Vanilla are planning an update to the site on April 24th (next Wednesday). It is a major PHP8 update which is expected to boost performance across the site. The site will be down from 7pm and it is expected to take about an hour to complete. We appreciate your patience during the update.
Thanks all.

Ideas for Final Year Project

Options
2»

Comments

  • Registered Users Posts: 2,213 ✭✭✭MajesticDonkey


    Have you any experience with graphics and in particular Image Recognition ?
    Artificial Intelligence / Image processing is a big area laden with a lot of math.
    No current experience, but I do have basic knowledge in the area and it's something I'd have a big interest in.
    Most image recognition APIs are written in C/C++ for processing speed, so some will not have a good Java interface.
    Yeah, fair point, but for the point of demonstration I don't think processing speed will be a big factor. Realistically, with a say a 14MP photo, what would be the difference between C(++)/Java? Less than a few seconds?
    EDIT: anything I'm reading online is saying there's essentially zero difference between C and Java, but that the real speed increase comes with Python, because of native access to ImageMagick and so on.
    Update.... actually, I see that task is to review them all, not necessarily to produce a working end product, just rip-off a few demo/examples of theirs.
    Yeah, a review of them is the supplied project but I don't really want to just to a review, so I decided to go for a project of my own and actually write an API.


    The plan is to research the sh1te out of this for the next 2-3 months, a bit of code tinkering, and actually start building it once I go back to college in September. I don't think this is a completely unrealistic task, but it is a difficult one.


  • Closed Accounts Posts: 8,016 ✭✭✭CreepingDeath


    I decided to go for a project of my own and actually write an API.

    I've messed around in this area in the past, it's complicated, but go for it.
    You will need to narrow down what your API will do, because there's Ph.d thesis just on slightly faster/more accurate line detection algorithms, never mind writing a full API yourself from scratch.

    Most of the complicated artificial intelligence documentation on graphics is in thesis form, which is written in math notation, so you won't easily find nice code snippets to plug into your work.

    To date, I've sample code which reads the mjpeg video stream from a network webcam frame by frame (Cambozola), and I can optionally turn on/off certain filters for image processing.

    Using the Java Advanced Imaging library ( JAI ), I've implemented sobel line detection, prewitt line detection, invert image colour ( negative image ), simple retinex colour conversion ( from sample code on the web ), subtract one image from another ( simple motion detection ), erode image, convole image, colour quantization and I found code on the web for "statistical region merging" which tries to segment an image into similar areas.
    Histogram functions to analysis the colour of images, converting images to grey scale, blurring images, identifying horizontal and vertical lines, scaling images, and trying to put a name to an RGB colour.

    I've also looked at "Grey Level Correlation Matrix" texture analysis, where you
    try to match blocks of pixels by texture.

    It's all interesting stuff, but you'd need to specialize in computer graphics to write some of the complicated math routines for any of the interesting stuff like texture recognition.

    So I'd just caution you to narrow your API right down, computer graphics is a field in it's own right.

    You might create a very simple API wrapper around an open source API out there to make it more accessible to others...


  • Registered Users Posts: 2,213 ✭✭✭MajesticDonkey


    You might create a very simple API wrapper around an open source API out there to make it more accessible to others...

    So yesterday I took the day off (work placement) to research this a bit more, and it turns out there's a small bit more to writing an image recognition algorithm than I thought :D

    So what I've decided to do is as mentioned above - create a wrapper for an existing image recognition library (OpenCV to be exact), or more specifically, a web-based API which uses OpenCV as a backend. Using OpenCV also gives me an excuse to go learn C++.

    Thanks to everyone for the help :)


  • Closed Accounts Posts: 8,016 ✭✭✭CreepingDeath


    I don't want to confuse you after you made a decision, but there's some Java wrappers (somewhat out of date I believe) for OpenCV already.
    Maybe writing a project to use the libraries would give you a more defined project result.

    One computer vision project idea I was thinking about was related to driving, being able to recogise road signs.
    I doubt you can run it on something underpowered & small as a raspberry pi though...

    The idea would be that you process the live video feed from a dashboad camera, detect the red bordered circular speed signs and display the current speed limit or play an audio file saying ( 5km, 10km, 30km, 50km etc )
    There's already algorithms for detecting circles.

    Or you could try read navigation road signs and determine what road the user is on. More for processing dashboard camera footage online, and working out where they were if you see a sign for eg. "Dundalk 30km".
    Sort of automatic video geotagging for the likes of Google.


  • Registered Users Posts: 2,213 ✭✭✭MajesticDonkey


    I don't want to confuse you after you made a decision, but there's some Java wrappers (somewhat out of date I believe) for OpenCV already.
    Maybe writing a project to use the libraries would give you a more defined project result.

    There are. They just use native functions to call the C++ library. What I'm going to do is to essentially create a web-based version of the image processing functionality of OpenCV. Obviously real-time video processing over the Web would not work.
    One computer vision project idea I was thinking about was related to driving, being able to recogise road signs.
    I doubt you can run it on something underpowered & small as a raspberry pi though...

    The idea would be that you process the live video feed from a dashboad camera, detect the red bordered circular speed signs and display the current speed limit or play an audio file saying ( 5km, 10km, 30km, 50km etc )
    There's already algorithms for detecting circles.
    This actually already exists, and was created by developers of OpenCV: http://itseez.com/products/adas/


  • Advertisement
Advertisement