Pinned Repositories
Bmp2Jpeg
Linux convert BMP to JPEG image file source code
Counting-and-Detecting-Vehicles
Program written in C++ for counting and detecting vehicles. This program use the opencv library for the image processing.
emeocv
Read and recognize the counter of an electricity meter with OpenCV
EMeterReader
Emotion-Detection-in-Videos
The aim of this work is to recognize the six emotions (happiness, sadness, disgust, surprise, fear and anger) based on human facial expressions extracted from videos. To achieve this, we are considering people of different ethnicity, age and gender where each one of them reacts very different when they express their emotions. We collected a data set of 149 videos that included short videos from both, females and males, expressing each of the the emotions described before. The data set was built by students and each of them recorded a video expressing all the emotions with no directions or instructions at all. Some videos included more body parts than others. In other cases, videos have objects in the background an even different light setups. We wanted this to be as general as possible with no restrictions at all, so it could be a very good indicator of our main goal. The code detect_faces.py just detects faces from the video and we saved this video in the dimension 240x320. Using this algorithm creates shaky videos. Thus we then stabilized all videos. This can be done via a code or online free stabilizers are also available. After which we used the stabilized videos and ran it through code emotion_classification_videos_faces.py. in the code we developed a method to extract features based on histogram of dense optical flows (HOF) and we used a support vector machine (SVM) classifier to tackle the recognition problem. For each video at each frame we extracted optical flows. Optical flows measure the motion relative to an observer between two frames at each point of them. Therefore, at each point in the image you will have two values that describes the vector representing the motion between the two frames: the magnitude and the angle. In our case, since videos have a resolution of 240x320, each frame will have a feature descriptor of dimensions 240x320x2. So, the final video descriptor will have a dimension of #framesx240x320x2. In order to make a video comparable to other inputs (because inputs of different length will not be comparable with each other), we need to somehow find a way to summarize the video into a single descriptor. We achieve this by calculating a histogram of the optical flows. This is, separate the extracted flows into categories and count the number of flows for each category. In more details, we split the scene into a grid of s by s bins (10 in this case) in order to record the location of each feature, and then categorized the direction of the flow as one of the 8 different motion directions considered in this problem. After this, we count for each direction the number of flows occurring in each direction bin. Finally, we end up with an s by s by 8 bins descriptor per each frame. Now, the summarizing step for each video could be the average of the histograms in each grid (average pooling method) or we could just pick the maximum value of the histograms by grid throughout all the frames on a video (max pooling For the classification process, we used support vector machine (SVM) with a non linear kernel classifier, discussed in class, to recognize the new facial expressions. We also considered a Naïve Bayes classifier, but it is widely known that svm outperforms the last method in the computer vision field. A confusion matrix can be made to plot results better.
gtec-demo-framework
HeadCounter
This is a head counting software. Its aim is to be able to count the number of people present in a crowd, especially in protests, and provide an estimate as accurate as possible.
kalman_car_counter
Uses opencv to track and count cars going by.
ldd3
Linux Device Drivers 3 examples updated to work in recent kernels
LDD3-examples
Porting ldd3 examples to Linux 4.15, these demos could be run on Ubuntu 16.04 / 18.04
zydz's Repositories
zydz/Bmp2Jpeg
Linux convert BMP to JPEG image file source code
zydz/Counting-and-Detecting-Vehicles
Program written in C++ for counting and detecting vehicles. This program use the opencv library for the image processing.
zydz/emeocv
Read and recognize the counter of an electricity meter with OpenCV
zydz/EMeterReader
zydz/Emotion-Detection-in-Videos
The aim of this work is to recognize the six emotions (happiness, sadness, disgust, surprise, fear and anger) based on human facial expressions extracted from videos. To achieve this, we are considering people of different ethnicity, age and gender where each one of them reacts very different when they express their emotions. We collected a data set of 149 videos that included short videos from both, females and males, expressing each of the the emotions described before. The data set was built by students and each of them recorded a video expressing all the emotions with no directions or instructions at all. Some videos included more body parts than others. In other cases, videos have objects in the background an even different light setups. We wanted this to be as general as possible with no restrictions at all, so it could be a very good indicator of our main goal. The code detect_faces.py just detects faces from the video and we saved this video in the dimension 240x320. Using this algorithm creates shaky videos. Thus we then stabilized all videos. This can be done via a code or online free stabilizers are also available. After which we used the stabilized videos and ran it through code emotion_classification_videos_faces.py. in the code we developed a method to extract features based on histogram of dense optical flows (HOF) and we used a support vector machine (SVM) classifier to tackle the recognition problem. For each video at each frame we extracted optical flows. Optical flows measure the motion relative to an observer between two frames at each point of them. Therefore, at each point in the image you will have two values that describes the vector representing the motion between the two frames: the magnitude and the angle. In our case, since videos have a resolution of 240x320, each frame will have a feature descriptor of dimensions 240x320x2. So, the final video descriptor will have a dimension of #framesx240x320x2. In order to make a video comparable to other inputs (because inputs of different length will not be comparable with each other), we need to somehow find a way to summarize the video into a single descriptor. We achieve this by calculating a histogram of the optical flows. This is, separate the extracted flows into categories and count the number of flows for each category. In more details, we split the scene into a grid of s by s bins (10 in this case) in order to record the location of each feature, and then categorized the direction of the flow as one of the 8 different motion directions considered in this problem. After this, we count for each direction the number of flows occurring in each direction bin. Finally, we end up with an s by s by 8 bins descriptor per each frame. Now, the summarizing step for each video could be the average of the histograms in each grid (average pooling method) or we could just pick the maximum value of the histograms by grid throughout all the frames on a video (max pooling For the classification process, we used support vector machine (SVM) with a non linear kernel classifier, discussed in class, to recognize the new facial expressions. We also considered a Naïve Bayes classifier, but it is widely known that svm outperforms the last method in the computer vision field. A confusion matrix can be made to plot results better.
zydz/gtec-demo-framework
zydz/HeadCounter
This is a head counting software. Its aim is to be able to count the number of people present in a crowd, especially in protests, and provide an estimate as accurate as possible.
zydz/kalman_car_counter
Uses opencv to track and count cars going by.
zydz/ldd3
Linux Device Drivers 3 examples updated to work in recent kernels
zydz/LDD3-examples
Porting ldd3 examples to Linux 4.15, these demos could be run on Ubuntu 16.04 / 18.04
zydz/learning-dl
Notes for my study on deep learning
zydz/local_manifests
zydz/meta-openrexpicam
zydz/OpenCV_3_Car_Counting_Cpp
zydz/ORB_SLAM2
Real-Time SLAM for Monocular, Stereo and RGB-D Cameras, with Loop Detection and Relocalization Capabilities
zydz/Pedestrian_Counter
C++ application using OpenCV able to detect and count pedestrians and cyclists
zydz/PedestrianCounter
Pedestrians detection and tracking using OpenCV on Python
zydz/People-Counter
This program count incoming and outcoming people, who crooss by hall
zydz/PeopleCount
Passenger counting for bus videos
zydz/pydata-book
Materials and IPython notebooks for "Python for Data Analysis" by Wes McKinney, published by O'Reilly Media
zydz/PythonDataScienceHandbook
Python Data Science Handbook: full text in Jupyter Notebooks
zydz/raspberry
raspberry pi3 common module
zydz/raw2rgbpnm
Please use git://salottisipuli.retiisi.org.uk/~sailus/raw2rgbpnm.git instead
zydz/rgb2bmp
zydz/simple_vehicle_counting
Vehicle Detection, Tracking and Counting
zydz/Sony-IMX219-Raspberry-Pi-V2-CMOS
Sony IMX219 Raspberry Pi V2 CMOS Datasheet and Source Code
zydz/TrafficCounter
Traffic Counter with C++ and OpenCV, using Kalman Filter