Easycam

📸 Share your DSLR camera images easily built in LauzHack'19
Alternatives To Easycam
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Multi Camera Live Object Tracking562
a year ago22gpl-3.0Python
Multi-camera live traffic and object counting with YOLO v4, Deep SORT, and Flask.
Poor Mans Deep Learning Camera399
5 years ago1Python
Build a thin client deep learning camera with the Raspberry Pi, Flask, and YOLO
Oreilly Flask Apis Video188
a month agomitPython
This repository contains the software that accompanies my O'Reilly training video "Building Web APIs with Flask".
Cozmo Explorer Tool88
5 years ago1mitPython
Tool for monitoring events, watching the camera feed and test animations of Anki's robot Cozmo
Phormatics79
2 years ago6Jupyter Notebook
Using A.I. and computer vision to build a virtual personal fitness trainer. (Most Startup-Viable Hack - HackNYU2018)
Cyber Camera56
3 years ago2gpl-3.0JavaScript
Turns any webcam into a smart security camera for home surveillance
Web Camera Recorder49
3 years ago4mitPython
Jean Pierre41
3 years ago1mitPython
A Raspberry Pi robot that helps people make their grocery list.
Image Crawler39
7 years ago2mitCSS
:camera: Python application based on flask framework.
Camhell39
5 years agogpl-3.0Python
Ingenic T10 IP camera crawler
Alternatives To Easycam
Select To Compare


Alternative Project Comparisons
Readme

EasyCam


HitCount GitHub stars GitHub forks GitHub repo size in bytes GitHub contributors GitHub license

Demo | API Documentation | Devpost

📸 Share your images to Social Media from your DSLR camera without cables and in less than 1 minute. Project built in LauzHack 2019.

Contents

Summary

Inspiration

The inspiration came really from a moment where we needed to share photos and videos from our DSLR in a quick way while we were taking photos in some of the events that we are organizing. We realized that there's a huge bottleneck from the moment that you take a photo and that photo ends to any Social Media.

What it does

Given a DSLR camera - we decided to play with a Yi Action Camera (from Xiaomi) - the user goes to the built web application and selects the time frame that they want. The application imports all the media from that time frame and shows all the photos taken during that time.

In order to optimize the selection process, the application splits all the photos by similarity using Machine Learning and then the user selects a cluster. Given that cluster, the application selects the best quality image.

And then, in less than one minute, you have the photo ready to be shared!

How we built it

Frontend and backend are very different components connected by API requests and deployed with Docker compose.

At the frontend, we can see an Express Node.JS application built with JavaScript. Bootstrap, JQuery, and EJS are some of the most important used libraries in order to achieve the frontend.

On the other side of the application, we have the backend which is implemented with Python 3.7. For creating the API that allows the communication between the two components, we have used Flask and OpenAPI (connected themselves with Connexion library), integrated with Docker compose. This API is hosted using uWSGI and Nginx in a small DigitalOcean droplet.

In order to achieve the clustering, we used Keras with the pre-trained model Resnet50 with the ImageNet weights in order to retrieve the features of the DSLR camera images. Given that the array of features, we used nmslib in order to create a 2048-dimensional space for computing distances between images. Given that space, we implemented an algorithm for creating the clusters.

Regarding the selection process, we used OpenCV in order to retrieve the blurry index for checking what image has the best quality given a cluster.

And last but not least, for the camera connection, we used an Open Source NodeJS project called yi-action-camera and we have added some new features for achieving the goal of the project.

Challenges we ran into

The most important challenge that we had was when we realized at midnight (12 hours left) that React was not compatible with the needed technology of the yi-action-camera library. We have had to run, a lot, in order to implement an alternative. 0 hours slept was the result at the end.

Also, none of us had experience with Keras so we had to spend some time researching and understanding this Machine Learning framework.

And finally, our experience with Express was very poor. So we have had to refresh our JS knowledge of this framework.

Accomplishments that we're proud of

Given the fact that we were only two in the team, we are really proud of the result which is a working prototype of our idea!

What we learned

We have learned how beautiful can be to be able to solve a problem with your own hands in just a weekend. A problem that we know one month ago while the hackathon of our university (HackUPC) was happening.

What's next for EasyCam

Our first goal was to implement connection with a Canon camera - each member of the team has one. However, we realized that there's no SDK or API or library compatible with our cameras, yet. It would be really cool in a (near) future to add our cameras for using it in the next event.

Screenshots

This is how our project looks like unifying frontend and backend

Screenshot 1

Screenshot 2

Screenshot 3

Screenshot 4

Screenshot 5

Requirements

  1. docker-compose

Usage

To run the whole stack, please execute the following from the root directory:

  1. Run the server as a docker container with docker-compose

    docker-compose up -d --build
    

Authors

License

MIT © EasyCam

Popular Camera Projects
Popular Flask Projects
Popular Hardware Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Javascript
Flask
Camera
Keras
Docker Compose