Found 266 repositories(showing 30)
dhvanikotak
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.
Li-xingXiao
The modified 272-dimensional motion representation processing script.
arasgungore
A Simulink project which can accurately simulate the motion of a flying rocket in one-dimensional space.
anl13
Official code for the manuscript "Three-dimensional surface motion capture of multiple freely moving pigs using MAMMAL"
niharikabalachandra
This project investigates gesture recognition techniques using Leap Motion Controller to collect 3 dimensional hand features such as coordinates, position of the hand, etc. We then use this raw data to train a Long Short Term Memory Recurrent Neural Network that is able to recognize basic hand gestures
mgb45
Low dimensional Kalman smoother that fills gaps in motion capture marker trajectories
Machine learning using convolution neural network Required: raspberry pi pi cam compatibile rc car motor driver l293d Please create the respective files: forward idle left right reverse optimized_thetas This project aims to build an autonomous rc car using supervised learning of a neural network with a single hidden layer. We have not used any Machine Learning libraries since we wanted to implement the neural network from scratch to understand the concepts better. We will be referring the DC motor controlling the left/right direction as the front motor and the motor controlling the forward/reverse direction as the back motor. Connect the BACK_MOTOR_DATA_ONE and BACK_MOTOR_DATA_TWO GPIO pins(GPIO17 and GPIO27) of the Raspberry Pi to the Input pins for Motor 1(Input 1, Input 2) and the BACK_MOTOR_ENABLE_PIN GPIO pin(GPIO22) to the Enable pin for Motor 1(Enable 1,2) in the L293D Motor Driver IC. Connect the Output pins for Motor 1(Output 1, Output 2) of the IC to the back motor. Connect the FRONT_MOTOR_DATA_ONE and FRONT_MOTOR_DATA_TWO GPIO pins(GPIO19 and GPIO26) of the Raspberry Pi to the Input pins for Motor 2(Input 3, Input 4) in the IC. Connect the Output pins for Motor 2(Output 3, Output 4) of the IC to the front motor. The PWM_FREQUENCY and INITIAL_PWM_DUTY_CYCLE represent the initial frequency and duty cycle of the PWM output. We have created five class labels namely forward, reverse, left, right and idle and assigned their expected values. All class labels would require a folder of the same name to be present in the current directory. The input images resize to the dimension of the IMAGE_DIMENSION tuple value during training. The LAMBDA and HIDDEN_LAYER_SIZE values represent the default lambda value and the number of nodes in the hidden layer while training the neural network. All these values are configurable in configuration.py. The images for training are captured using interactive_control_train.py, the car is controlled using the direction arrows and all the images are recorded in the same folder along with the corresponding key press. After segregating the images into their corresponding class folders, the neural network is trained using train.py which takes two optional arguments - lambda and hidden layer size; default values would be those specified in the configuration file. At the command prompt, run the following command Once we have the trained model, the RC car is run autonomously using autonomous.py which takes an optional argument for the trained model; default will use the latest model in the optimized_thetas folder. Please feel free to post your doubts on code through my linkedin link: edin.com/in/shreyas-ramachandran-srinivasan-565638117/ CONTROLLING THE CAR The controlling process consists of 4 parts: The sensor interface layer includes various programming modules worried about getting and time stamping all sensor information. The discernment layer maps sensor information into inward models. The essential module in this layer is the PI camera, which decides the vehicle's introduction and area. Two distinct modules enable auto to explore in view of ultrasonic sensor and the camera. A street discovering module utilizes the PI camera determined pictures to discover the limit of a street, so the vehicle can focus itself along the side. At last, a surface evaluation module separates parameters of the present street to determine safe vehicle speeds. The control layer is in charge of managing the controlling, throttle, and brake reaction of the vehicle. A key module is the way organizer, which sets the direction of the vehicle in controlling and speed space. The vehicle interface layer fills in as the interface to the robot's drive-by-wire framework. It contains all interfaces to the vehicle's brakes, throttle, and controlling wheel. It likewise includes the interface to the vehicle's server, a circuit that manages the physical capacity to a significant number of the framework segments. In the proposed system, the raspberry Pi is used to control the L293D board, which allows motors to be controlled through the raspberry pi through the pulses provided by it. Based on the images obtained, raspberry pi provides PWM pulses tocontrol the L293D controller. L293D is a 16 Pin Motor Driver IC as shown in Figure 9. This is designed to provide bidirectional drive currents at voltages from 5 V to 36 V. Fig 9 L293D Breakout Board It also allows the speed of the motor to be controlled using PWM. It’s a series of high and low. The Duration of high and low determine the voltage supplied to the motor and hence the speed of the motor. PWM Signals: The DC motor speed all in all is specifically relative to the supply voltage, so if lessen the voltage from 9 volts to 4.5 volts, then our speed turn out to be half of what it initially had. Yet, for changing the speed of a dc motor we can't continue changing the supply voltage constantly. The speed controller PWM for a DC motor works by changing the normal voltage provided to the motor.The input signals we have given to PWM controller may be a simple or computerized motion as per the outline of the PWM controller. The PWM controller acknowledges the control flag and modifies the obligation cycle of the PWM motion as indicated by the prerequisites. In these waves frequency is same but the ON and OFF times are different. Recharge power bank of any capacity, here, 2800 mAH is used (operating voltage of 5V DC), can be used to provide supply to central microcontroller. The microcontroller used will separate and supply the required amount of power to each hardware component. This battery power pack is rechargeable and can get charged and used again and again.
Loganator17
3 dimensional surface motion will be calculated from several InSAR velocity fields with one dimensional line of sight (LOS) view angles. In order to find a model of dike propagation and closing, it is possible to calculate the three dimensional surface motion from multi-geometry data compilation (Fuhrmann and Garthwaite, 2019). By taking two Interferometric Synthetic Aperature Radar Images (InSAR) from different satellite look directions (Ascending and Descending) decompose the Line of Sight (LOS) value from both angles to create a vertical and east-west motion map.
stevenjj
Implementation of continuous double support DCM trajectories from "Three-dimensional bipedal walking control based on divergent component of motion" in matlab
sadrasafa
Code for "Multi-Object Discovery by Low-Dimensional Object Motion", ICCV 2023
zhan994
[ICIP 2025] Image Motion Blur Removal in the Temporal Dimension with Video Diffusion Models
LucasHartman
‘Generative House Algorithm’ was constructed for one simple reason, being one click away from creating a range of uniquely designed model houses. At the beginning of 2020, the start of the covid-19 pandemic, I started learning programming. My background is in developing 3D motion graphics, but my work goes into different directions. I feel inspired by trying out new things, but often feel constrained by the software I use. I never found the right software that could satisfy my every need. A few years back, I visited a motion graphics event in Prague. Here I saw a presentation by Simon Homedal from Man vs. Machine and he introduced me to procedural programming for digital art. And so my journey into learning to code started. Being stuck at home because of covid-19, I was presented with a change to really jump in and start developing a few coding projects. I started out with a simple board game in Java, where I was introduced to ‘object oriented programming’ and UI development and many other general concepts. At the end of this project I came to the conclusion that simple programming is not enough, I needed to combine with something I already have experience of. So I started using Python inside Maya, focusing on asset development of simple programs I could execute whenever I’m working on a 3D project. At the time I was wondering if I could deconstruct houses to an algorithm. The inspiration for this project came from wandering around the residential areas where I lived. Zandberg has very diverse styles of architecture; Terrace houses with high ceilings, classical villas with roofs made of straw and modern villas built after WWII. I was captivated by the diversity in design. Breakdown A simple UI inside Maya, where the uses can specify the value for generating a number of houses. Simple things like level and roof height, number of doors, max number of levels, etc. Lastly a button that would take in the value and run the algorithm. The back-end consists of a number of Python modules, textures and .obj files. One Python file called the “Main”, is where the files are assembled and executed. Process Developing a generative algorithm is a process of trial and error. At the start of the project I treated the project like any other modeling project, only every design decision was programmed in with a number of possible solutions. Over time this would become very complex and unstructured. It became impossible to go back and modify what I already wrote down. Another problem was that the algorithm was creating the model for running the code. This meant that selecting, adding and subtracting mesh to the model cost a lot of processing power, to the point my computer would freeze up. I needed to rethink my process and develop a framework which is easy to modify and light on the processor. My new plan of attack was to do as little as possible in Maya. All design instructions needed to be solved before anything can be created in Maya. Going into this direction was a hard choice. First off, it’s not a guarantee for success. The moment I would go too deep, things can get messy very easily. Besides I consider myself more of a visual thinker. Working outside of Maya meant every hurdle would be some sort of math problem. I already knew I had no choice, and understood this is the type of problem solving a programmer has to deal with. So I started out doing a little bit of RnD. My first test was to create a number of lists. Generally every list would hold some type of value. Like positional data, labels, dimensions, objects etc. and the rest would be a range of functions iterating, generating, gathering, and sorting data into these lists. These seemed flexible enough, if I needed to add new details to the model, I would make a new list and apply this into the framework. This type of framework was not very structured as I hoped. Luckily I discarded this ideal before it really began. I was already attracted by the idea of using a matrix instead of lists at the top of lists. The matrix would provide data in three dimensions, like a volume or a box made out of separate units. I would add an extra dimension to each unit, which is a list of six values. Each value would represent each side of a unit. The general ideal of a matrix is like a fluid simulation, which is made out of a matrix of voxels, or like Minecraft where each unit can be some type of block. This would create a data structure that is easy to modify. The next step would be to feed the matrix with values. A value can represent walls, doors, windows, levels, rooftops, position and direction. It starts with an empty matrix, and secondly fill it with values of 1 (later on inside Maya, value 1 would generate a wall, the location within the matrix would be translated to 3D space). If you’d stop here and translate the matrix to mesh in Maya, you would get a cluster of boxes stacked next or on top of each other. Adding more data to the matrix meant it needed to structure itself, so it would generate a cohesive design. If not the final result would be a house with holes in the wall or floating rooms. Therefore a number of functions are needed for searching for patterns, and modifying the data. A standard function would iterate over each unit in the matrix and check the neighboring values. If some sort of condition is met, the proper value will be modified. Going back to our cluster of boxes example. If a has a neighbouring box in front and to the left, but nothing on top, this would be a condition where a corner roof would be generated. And so different functions would solve design problems. In the end you would be left with a matrix of values that would serve as a blueprint for generating in house inside Maya. Finally the model needs to be made in Maya. A number of parts like a wall, door or window are generated or imported in Maya. When iterating over the finished matrix, a certain value in a certain place in the matrix will decide which objects (example wall or roof) needs to be instanced and placed in the right position and direction. When the matrix is fully realised in Maya the model gets a final cleanup, by merging the model, deleting unused parts and empty groups. What is left is the house model. If a range of houses needs to be generated, the process is simply looped over a number of times. Final word This project took way longer than I had anticipated and is far from finished. I learned a lot and at the same time it feels like I have only just begun. I hope to pick up this project again in the near future. I would love to add more elements to the house, like roof-windows or balconies and create procedural shaders. And possibly try out machine learning or some type of genetic algorithm. If you have any questions or are intrigued please contact me at ljh.hartman@gmail.com. Cheers!
smd-ros-devel
ROS Driver for the Dimension Engineering Kangaroo x2 Motion Controller
open-source-modelling
n dimensional Brownian motion with an arbitrary mean and Variance Covariance matrix.
jrbarhydt
PCA-Based Object Motion Detection and Dimensionality Reduction in MATLAB Using Background Subtraction (SVD/PCA) and Clustering
marianpekar
A swarm of icosahedrons randomly distributed in a three-dimensional space with usage of Fractal Brownian Motion Noise
SergiosKar
Development of motion planning system through obstacles for 2 dimensional robot using computational geometry methods such as voronoi diagram and visibility graph
Sanyam-oss
This Project utilizes classical image processing methodologies in conjunction with the Incremental Structure from Motion (SfM) algorithm to facilitate precise three-dimensional (3D) reconstruction. This approach culminates in the generation of intricate 3D point clouds representing objects of interest.
Facial expression recognition is one of the methods to obtain the change of human's inner emotion. The existing methods mostly extract the global facial features, but ignore the local features. According to the definition of psychologists' facial behavior coding system, different expressions have corresponding muscle motion units. Therefore, this paper proposes an expression recognition algorithm EAU-CNN based on extracting local representation of muscle motion units. For local representation, this paper calculates the generating regions of muscle motion units with different expressions, divides the face into 43 regions on the basis of 68 feature points of the face, and splices the regions into 8 local images according to the generation regions of facial organs and motion units. In order to extract the image features evenly, EAU-CNN uses 8 input channels to extract features, and stitches 4096 dimension full connection layer according to the proportion of the composition image area. The splicing full connection layer multiplies different expressions by different weight values to highlight the proportion of local composition image features in different expressions. After subsequent feature extraction and softmax function, the expressions are divided into seven categories: neutral, angry and disgusting , surprise, joy, sadness, fear. After verification, the average accuracy of the algorithm in CK + and Jaffe datasets reaches 99.85% and 96.61%, with the highest improvement of 16.09% and 25.42%, and the average accuracy of custom large fed data set reaches 98.6%, with the highest improvement of 19.68%. The algorithm verifies the importance of local representation for expression recognition.
rhuibertsjr
🦿 Arm motion in two-dimensional space.
greatsharma
Transforming two-dimensional bounding boxes into three-dimensional representations for moving vehicles using motion tracking and geometric principles.
moment-of-peace
Using rapidly exploring random tree to solve high-dimension motion planning problems
narendrakumar92
Detects and extracts the features such as color, key points, and motion vectors. Helps in finding Video similarity, Video subsequence search, Dimensionality reduction, Querying, Indexing (PageRank and ASCOS++), Multidimensional Index Structure and KNN (Locality Sensitive Hashing tool), Visualizing the query result as videos
noranta4
The motion of an asteroid in a two-dimensional space with a star and a planet • University project • 2014 - Laboratorio di Fisica Computazionale - BSc in Physics, II year
MichaelBeechan
The three elements of optical flow are as follows: optical flow produces velocity field; it is a carrier with information and optical properties such as pixels; it is a projection imaging of 3D scene motion to two-dimensional plane. It is the instantaneous velocity field generated by the motion of pixels with grayscale on the plane of the image.
gxd123
SUBJECT NO-PH11001, SUBJECT NAME- Physics LTP- 3-1-0,CRD- 4 SYLLABUS :- Course Contents Theory Component: Overview of vibrations with emphasis on damped and forced oscillations, resonance, coupled oscillations, normal modes. Wave Motion: longitudinal and transverse waves, wave equation, plane waves, phase velocity, superposition wave packets and group velocity, two and three dimensional waves, polarization. Electromagnetic Waves: Maxwell’s equations, wave equation, plane electromagnetic waves, energy-momentum, Poynting’s theorem, electromagnetic boundary conditions, reflection and refraction, interference, Young’s experiment, interferometers, diffraction, Fraunhofer diffraction (single slit), dispersion, radiation. Wave Mechanics: failure of classical physics, qualitative review of relevant experiments, de Broglie waves, uncertainty principle, wave function and Schrodinger equation, probability interpretation, particle on a chain, potential barrier and quantum tunneling, potential well, qualitative summary of simple harmonic oscillator and Hydrogen atom. Occupation probability and examples. Laboratory Component: Suggested Experiments 1.Oscillation in potential well 2.Normal modes of coupled oscillators 3.Measurement of velocity of acoustic waves 4.Newton’s rings 5.Specific rotation of an optically active source 6.Diffraction with laser 7.Dispersive power of a prism 8.Fresnel biprism 9.Franck Hertz experiment 10.Photoelectric effect 11.Measurement of band gap in semiconductors 12.Measurement of Hall effect
SuperDroidRobots
Example code for our 4-wheeled Mecanum Wheel Vectoring Robot Platforms. Examples include motor demonstrations for a variety of motor controllers such as an LMD18200 PWM motor controller, Dimension Engineering's Sabertooth motor controller and Kangaroo motion controller.
anl13
Beagle dog dataset used in paper "Three-dimensional surface motion capture of multiple freely moving pigs using MAMMAL" (Nature Communications 2023)
kyeah
A graphics engine built from scratch in Java. Supports 3-dimensional lighting and animation. Custom Motion Description Language (MDL) provided by Mike Zamansky.
LipeiDu
BEShydro: A (3+1)-dimensional diffusive relativistic hydrodynamic code which solves the equations of motion of second-order Denicol-Niemi-Molnar-Rischke (DNMR) theory, including bulk and shear viscous currents and baryon diffusion currents