All Projects → pbcquoc → yolo

pbcquoc / yolo

Licence: other
implement yolo v1

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to yolo

yolo v1 pytorch
PyTorch implementation of YOLO-v1 including training
Stars: ✭ 89 (+128.21%)
Mutual labels:  yolov1
Tensorflow-Wide-Deep-Local-Prediction
This project demonstrates how to run and save predictions locally using exported tensorflow estimator model
Stars: ✭ 28 (-28.21%)
Mutual labels:  tensorflow-tutorials
qa
TensorFlow Models for the Stanford Question Answering Dataset
Stars: ✭ 72 (+84.62%)
Mutual labels:  tensorflow-tutorials
tensorflow documents zh
TensorFlow 正式版中文文档
Stars: ✭ 26 (-33.33%)
Mutual labels:  tensorflow-tutorials
TensorFlow-Roadmap
📡 Organized & Useful Resources about Deep Learning with TensorFlow
Stars: ✭ 71 (+82.05%)
Mutual labels:  tensorflow-tutorials
tensorflow-basics
A few TensorFlow techniques I'm saving for future reference.
Stars: ✭ 13 (-66.67%)
Mutual labels:  tensorflow-tutorials
TensorFlow20-Notes
TensorFlow 2.0 Various notes and tutorials
Stars: ✭ 14 (-64.1%)
Mutual labels:  tensorflow-tutorials
tensorflow-face-object-detector-tutorial
How to train a Tensorflow face object detection model
Stars: ✭ 63 (+61.54%)
Mutual labels:  tensorflow-tutorials
Dog-or-Cat-TensorflowSharp-Example
An example for TensorflowSharp - classify an image as a dog or cat.
Stars: ✭ 15 (-61.54%)
Mutual labels:  tensorflow-tutorials
Gradient-Samples
Samples for TensorFlow binding for .NET by Lost Tech
Stars: ✭ 53 (+35.9%)
Mutual labels:  tensorflow-tutorials
tf-keras-tutorial
tf.keras + tf.data with Eager Execution
Stars: ✭ 75 (+92.31%)
Mutual labels:  tensorflow-tutorials
tf2-transformer-chatbot
Transformer Chatbot in TensorFlow 2 with TPU support.
Stars: ✭ 94 (+141.03%)
Mutual labels:  tensorflow-tutorials
tensorflow-practice
Tutorials of Tensorflow for beginners with popular data sets and projects. Let's have fun to learn Machine Learning with Tensorflow.
Stars: ✭ 93 (+138.46%)
Mutual labels:  tensorflow-tutorials
tensorflow-tutorial
郑泽宇等《TensorFlow实战Google深度学习框架》(第二版)学习
Stars: ✭ 40 (+2.56%)
Mutual labels:  tensorflow-tutorials
Spatial-Transformer-Nets
Spatial Transformer Nets in TensorFlow/ TensorLayer
Stars: ✭ 38 (-2.56%)
Mutual labels:  tensorflow-tutorials
herokuobjectdetection
This is the code for Medium tutorial
Stars: ✭ 17 (-56.41%)
Mutual labels:  tensorflow-tutorials
tensorflow-cnn-tutorial
Tensorflow tutorial on convolutional neural networks.
Stars: ✭ 39 (+0%)
Mutual labels:  tensorflow-tutorials
model-deployment
Examples showcasing model deployment
Stars: ✭ 17 (-56.41%)
Mutual labels:  tensorflow-tutorials
image-classifier-service
Sorting my messed folder where I put my holidays pictures was not fun. My computer made the trick for me with Deep Learning!
Stars: ✭ 31 (-20.51%)
Mutual labels:  tensorflow-tutorials
tensorflow-experiences
nbortolotti.blogspot.com
Stars: ✭ 40 (+2.56%)
Mutual labels:  tensorflow-tutorials

Tìm Hiểu YOLO cho Object Detection

Giới Thiệu

You only look once (YOLO) là một mô hình CNN để detect object mà một ưu điểm nổi trội là nhanh hơn nhiều so với những mô hình cũ. Thậm chí có thể chạy tốt trên những IOT device như raspberry pi. Trong phần này mình hướng dẫn các bạn chi tiết cách cài đặt YOLO v1 trên tập dữ liệu mẫu do mình tự phát sinh. Nắm rõ về YOLO v1 giúp bạn có thể cài đặt các phiên bản cải tiến, đồng thời giúp bạn có thể đọc những tài liệu về Object Detection. Đồng thời cung cấp 25k mẫu dữ liệu cho các bạn dùng để thử nghiệm trong bài toán object detection

Mình cung cấp sẵn file ipython giúp các bạn có thể dễ dàng thử nghiệm với mô tả chi tiết từng bước của thuật toán trên tập dữ liệu mẫu.

object detection example

Dataset

Mình dùng tập dataset tự phát sinh để làm ví dụ cho thuật toán YOLO v1. Tập dữ liệu này tương đối nhẹ và dễ nên giúp các bạn dễ dàng huấn luyện mô hình với độ chính xác cao đồng thời giúp mình có thể phân tích một số hạn chế của mô hình

dataset

Chi tiết mô hình

Một trong nhưng ưu điểm mà YOLO đem lại đó là chỉ sử dụng thông tin toàn bộ bức ảnh một lần và dự đoán toàn bộ object box chứa các đối tượng, mô hình được xây dựng theo kiểu end-to-end nên được huấn luyện hoàn toàn bằng gradient descent. Sau đây, mình sẽ trình bày chi tiết về mô hình YOLO

Grid System

Ảnh được chia thành ma trận ô vuông 7x7, mỗi ô vuông bao gồm một tập các thông tin mà mô hình phải dữ đoán.

  • Đối tượng duy nhất mà ô vuông đó chứa. Tâm của đối tượng cần xác định nằm trong ô vuông nào thì ô vuông đó chứa đối tượng đó. Ví dụ tâm của cô gái nằm trong ô vuông màu xanh, do đó mô hình phải dự đoán được nhãn của ô vuông đó là cô gái. Lưu ý, cho dù phần ảnh cô gái có nằm ở ô vuông khác mà tâm không thuộc ô vuông đó thì vẫn không tính là chứa cô gái, ngoài ra, nếu có nhiều tâm nằm trong một ô vuông thì chúng ta vẫn chỉ gán một nhãn cho ô vuông đó thôi. Chính ràng buột mỗi ô vuông chỉ chứa một đối tượng là nhược điểm của mô hình này. Nó làm cho ta không thể detect những object có tầm nằm cùng một ô vuông. Tuy nhiên chúng ta có thể tăng grid size từ 7x7 lên kích thước lớn hơn để có thể detect được nhiều object hơn. Ngoài ra, kích thước của ảnh đầu vào phải là bội số của grid size.

grid_system

  • Mỗi ô vuông chịu trách nhiệm dự đoán 2 boundary box của đối tượng. Mỗi boundary box dữ đoán có chứa object hay không và thông tin vị trí của boundary box gồm trung tâm boundary box của đối tượng và chiều dài, rộng của boundary box đó. Ví vụ ô vuông màu xanh cần dự đoán 2 boundary box chứa cô gái như hình minh họa ở dưới. Một điều cần lưu ý, lúc cài đặt chúng ta không dự đoán giá trị pixel mà cần phải chuẩn hóa kích thước ảnh về đoạn từ [0-1] và dự đoán độ lệch của tâm đối tượng đến box chứa đối tượng đó. Ví dụ, chúng ta thay vì dữ đoán vị trí pixel của điểm màu đỏ, thì cần dự đoán độ lệch a,b trong ô vuông chứa tâm object.

2box

Tổng hợp lại, với mỗi ô vuông chúng ta cần dữ đoán các thông tin sau :

  • Ô vuông có chứa đối tượng nào hay không?
  • Dự đoán độ lệch 2 box chứa object so với ô vuông hiện tại
  • Lớp của object đó

Như vậy với mỗi ô vuông chúng ta cần dữ đoán một vector có (nbox+4*nbox+nclass) chiều. Ví dụ, chúng ta cần dự đoán 2 box, và 3 lớp đối với mỗi ô vuông thì chúng sẽ có một ma trận 3 chiều 7x7x13 chứa toàn bộ thông tin cần thiết.

labels

See more

Kết quả của mô hình

Sau khoảng 100 epochs, các bạn có thể đạt được 0.9 iou trên tập test gồm 5k mẫu dữ liệu. dataset

Any Problems

Nếu bạn có bất kì vấn đề gì, vui lòng liên hệ với mình qua email: [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].