Hướng dẫn sử dụng YOLO (You Only Look Once) - Nhận dạng hình ảnh vật thể với Raspberry Pi sử dụng YOLO

Mô tả dự án: 

Hôm nay mình sẽ giới thiệu cho các bạn một cách nhận dạng hình ảnh mới nhất và đang hot hiện nay trên máy tính :)  đó chính là YOLO (You only look once) YOLO là một hệ thống phát hiện vật thể thời gian thực hiện đại nhất, bộ dữ liệu đa dạng cho phép chúng ta làm các dự án liên quan như: đếm số người trong một khu vực, nhận dạng đông vật nuôi, đếm số phương tiện giao thông...

 Ở bài này chúng ta sẽ chạy thử nghiệm nó trên Raspberry Pi cho các dự án nhận dạng ảnh đơn giản và không yêu cầu về mặt thời gian :) vì YOLO chủ yếu dùng cho các hệ thống máy tính mạnh, cấu hình cao . Hãy thử build nó lên Raspberry xem sao nhé ;)

Các thiết bị cần thiết

Tải thư viện và cài đặt YOLO

Bạn thực hiện các lệnh sau để cài đặt Darknet trước nhé:

  1. git clone https://github.com/pjreddie/darknet
    cd darknet
    make
  2. Tiếp theo bạn tiến hành tải bộ dữ liệu của YOLO :)
    wget https://pjreddie.com/media/files/yolo.weights

Nhận dạng thử nghiệm một mẫu hình với YOLO

  1.  Bạn chạy các lệnh sau để detect một hình ảnh sẵn có trong tập dữ liệu nhé, ở đây mình sẽ thử nghiệm với file hình có tên dog.jpg trong thư mục darknet/data :)
    ./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg
  2. Phân tích kết quả nhận được
  3. layer     filters    size              input                output
        0 conv     32  3 x 3 / 1   416 x 416 x   3   ->   416 x 416 x  32
        1 max          2 x 2 / 2   416 x 416 x  32   ->   208 x 208 x  32
        .......
       29 conv    425  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 425
       30 detection
    Loading weights from yolo.weights...Done!
    data/dog.jpg: Predicted in 157.628 seconds.
    car: 54%
    bicycle: 51%
    dog: 56%  

Ở trên chúng ta thấy được kết quả nhận dạng từ file hình trong vòng 157.628 giây, các kết quả bao gồm car: 54%, bicycle 51%, dog: 56% :) tuy thời gian mất đến hơn 2 phút nhưng kết quả cho ra thật chính xác, bạn có thể xem kết quả hình ảnh bên trên. Vì chúng ta đang sử dụng Raspberry Pi 3 để chạy Yolo nên các yêu cầu về phần cứng chưa đáp ứng đủ, dẫn đến thời gian xử lý rất lớn, đối với laptop hay máy để bàn có card màn hình thì thời gian này chỉ trong vòng 0.00xx giây mà thôi, Tuy thời gian có cao nhưng các project không yêu cầu tốc độ chẳng hạn " đếm số xe trong nhà xe" chẳng hạn :) thì nó trở nên dễ dàng và hữu ích

Hãy đổi tên và thử với một hình ảnh khác ví dụ những con ngựa nhé :) 

./darknet detect cfg/yolo.cfg yolo.weights data/horse.jpg

Kết quả thu được tương tự :)

 

 

Sử dụng một file hình của bạn tùy ý

Để có thể xử lý một hình ảnh bất kì bạn chỉ việc chạy một số lệnh cơ bản để thay đổi đường dẫn ví dụ mình có một file hình là ndt.jpg trong đường dẫn home/ndt/Downloads thì bạn chỉ đổi phía sau đoạn code là được  

./darknet detect cfg/yolo.cfg yolo.weights /home/ndt/Downloads/ndt.jpg

Kết quả thu được :)

Bạn có thể thấy được nó nhận dạng được mình và cả một người nhỏ nhỏ nằm trong hình ở trên tường :) thật vi diệu phải không nào :) Hôm sau chúng ta sẽ cùng nhau sử dụng Raspberry và camera để đếm số người trong một khu vực nhé :) hy vọng các bạn thấy vui với tools mới này :)

lên
26 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Cánh tay robot 4 bậc tự do - Điều khiển bằng máy tính dùng LABVIEW

Thông qua các phương tiện thông tin trên các diễn đàn Internet và các trung tâm học tập thực hành, cho thấy nhu cầu học tập và nghiên cứu cũng như tự mày mò tìm hiểu về nhiều lĩnh vực trong ngành điện điện tử nói chung và ngành tự động hóa nói riêng là rất cao. Hiện nay trong các nhà máy có các dây chuyền sản xuất, có rất nhiều các tay máy hoạt động. Robot công nghiệp đã có mặt trong sản xuất từ nhiều năm trước, ngày nay robot công nghiệp được dùng ở nhiều lĩnh vực sản xuất. đó là xuất phát từ những ưu điểm mà robot đó đã được chọn và đúc kêt lại trong quá trình sản xuất, robot có những tính năng mà con người không thể có được, khả năng làm việc ổn định,làm việc trong môi trường độc hại. Do đó việc đầu tư nghiên cứu, chế tạo ra những loại robot phục vụ cho công cuộc tự động hóa sản xuất là rất cần thiết cho hiện tại và trong tương lai.

lên
18 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Làm dự án xe với module điều khiển động cơ L293D

Chắc hẵn từ lúc mới đầu nghiên cứu Arduino đến nay bạn đã từng có suy nghĩ muốn làm một dự án nho nhỏ nào đó để thỏa lòng đam mê hay tò mò của mình và dự án được đa số bạn thích thú hướng đến có lẽ là xe, xe điều khiển, xe dò đường... hay là một dự án to bự như kBot của admin Ngô Huỳnh Ngọc Khánh (ksp) ^^. Vậy làm thế nào để có thể điều khiển được các bánh xe, servo, động cơ bước cho "chiến xa" trong khi board arduino chỉ cho phép bạn xuất các tín hiệu điện HIGH, LOW! Ở bài này mình xin giới thiệu đến các bạn một công cụ cực chất đó là shield điều khiển động cơ l293d, giúp bạn dễ dàng trong việc xử lý các thao tác điều khiển độc lập các motor của mình, nào ta bắt đầu thôi :)   

lên
60 thành viên đã đánh giá bài viết này hữu ích.

Review #1: Cùng đập hộp Board VBLUNO công ty VNG Việt Nam

Như đã hẹn với các bạn, hôm nay Cộng đồng Arduino sẽ tiến hành review một sản phẩm công nghệ do chính công ty Việt Nam sản xuất, đó chính là board VBLUNO (VNG IoT Lab BLE Uno). Chúng ta sẽ cùng đập hộp và tìm hiểu về nó để biết được điểm khác biệt so với các board thông dụng mà các bạn hay làm dự án trước đây nhé. Tiến hành thôi nào cool

lên
7 thành viên đã đánh giá bài viết này hữu ích.