Skip to content
SeungGun edited this page Jun 12, 2023 · 7 revisions

Missing Object Detection

Graduation Project

Team Members

Student ID Name Email
201635817 배용호 [email protected]
201732831 오현호 [email protected]
201835509 임인범 [email protected]
201935069 신승건 [email protected]

1. Motivation

As the number of lost items in public places increases every year,

we wanted to develop an algorithm to identify lost items and develop a web service that could inform managers that lost items have occurred.

2. Brief Description

Detects people and objects from Live cams or videos, identifies the relationship between objects and people, and notifies you if it is considered lost.

3. Getting Started

Download Our Django Project

git clone https://github.com/MissingObjectDetection/MOD-back.git

Open Project

cd MOD-back

Run Django Server (PORT: 8000)

python manage.py runserver

Download Our React Project

git clone https://github.com/MissingObjectDetection/MOD-front.git

Open Project

cd MOD-front/hello/

Run React Project (PORT: 3000)

npm install
npm start

After the above steps, connect localhost

http://localhost:3000

4. How to use

Step 1. Modify the IP address of the server for sending the video file at src/pages/VideoSend.js

Axios.post('http://${IP address}:8000/mod/upload/', formData, config)
   .then((response) => {
        console.log('Success');
    ...

Use a localhost!

Step 2. Click and Select your video file

Step 3. You can receive the analyzed results from the model through a server.

5. Model Document

Requirements

  • Python: 3.9.12
  • CUDA: 11.2

Dependencies

activation==0.1.0
anaconda-navigator==2.1.4
conda==4.12.0
config==0.5.1
cython-bbox==0.1.3
cytoolz==0.11.0
einops==0.4.1
install==1.3.5
keras==2.10.0
Keras-Preprocessing==1.1.2
pandas==1.1.5
Pillow==9.0.1
tensorflow==2.10.0
torch==1.7.1
torchvision==0.8.2
yacs==0.1.8

Run Deepsort with YOLOv4 weight

# Run yolov4 deep sort object tracker on video
python object_tracker.py --video ${your input video path} --output ${your output video path} --model yolov4

default input video path → ./data/video/{file_name}

default output video path → ./outputs/demo.avi

# Run yolov4 deep sort object tracker on webcam (set video flag to 0)
python object_tracker.py --video 0 --output ${your output video path} --model yolov4

default output video path → ./outputs/webcam.avi

Make custom dataset and YOLOv4 weight

Labeling Dataset

Save label name to coco.names file

Generate model .pb file trained as custom dataset

darknet.exe detector train cfg/coco.data cfg/yolov4.cfg yolov4.conv.137
  • Visualize real-time training rate by using -map option
darknet.exe detector train cfg/coco.data cfg/yolov4.cfg yolov4.conv.137 -map

Model Test trained as custom dataset

6. Project Overview

Key Features

Main Request Processing Result
image
  • Detecting Humans and Objects
  • Recognizing Relationships between human and object
  • Sending real-time result
  • If missing event detects, Alert to user

System Architecture

  • When a client sends a request with an image, the server connects sockets to run a lost and found algorithm on the input image on the server.
  • Pass real-time results obtained during execution through the socket to the client. It is also stored in the database.
  • When the algorithm is finished, the resulting image containing the bounding box is delivered to the client in response.
  • The client can re-review the image results and recall the results with the data stored in the database.

Sequence Diagram

Database schema

Model Process

Reference Open Source

[Deepsort] https://github.com/theAIGuysCode/yolov4-deepsort

[FairMOT] https://github.com/ifzhang/FairMOT

[YOLOv4] https://github.com/AlexeyAB/darknet