Hướng dẫn - Tự viết công cụ nhận dạng hình ảnh đơn giản bằng Python | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We need money to operate the site, and almost all of it comes from our online advertising.

If possible, please support us by clicking on the advertisements.

Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

Hướng dẫn Tự viết công cụ nhận dạng hình ảnh đơn giản bằng Python

Administrator

Administrator
Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991. Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ. Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu. Vào tháng 7 năm 2018, Van Rossum đã từ chức Leader trong cộng đồng ngôn ngữ Python sau 30 năm lãnh đạo.

Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động; do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl. Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý.

Ban đầu, Python được phát triển để chạy trên nền Unix. Nhưng rồi theo thời gian, nó đã "bành trướng" sang mọi hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix. Mặc dù sự phát triển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum hiện nay vẫn là tác giả chủ yếu của Python. Ông giữ vai trò chủ chốt trong việc quyết định hướng phát triển của Python. (Wiki)

Python được đánh giá là ngôn ngữ dễ hiểu, nhanh học , dễ tiếp cận cho người mới học lập trình. Dưới đây mình xin hướng dẫn các bạn mới học tự mình làm một công cụ nhận dạng hình ảnh đơn giản bằng Python. Dự án này sử dụng các bộ thư viện mã nguồn mở công nghệ máy học có sẵn, nếu bạn có đam mê hãy phát triển theo cách của mình.

imagenew75174e79f47e7c61.jpg

Phát hiện người và đồ vật trên xe giường nằm


mChwdiC.jpg
Phát hiện xe, người trong bức ảnh tại Hà Nội

Để thực hiện quá trình này bạn cần làm theo các bước sau

I. Cài đặt Python 3 trở lên tại


II. Cài đặt các bộ thư viện mã nguồn mở cần sử dụng bằng pip:

1. Tensorflow
TensorFlow là một thư viện phần mềm mã nguồn mở dành cho máy học trong nhiều loại hình tác vụ nhận thức và hiểu ngôn ngữ

Gõ: pip install tensorflow

2. Numpy

pip install numpy

3. SciPy

pip install scipy

4. OpenCV

pip install opencv-python

5. Pillow

pip install pillow

6. Matplotlib

pip install matplotlib

7. H5py

pip install h5py

8. Keras

pip install keras

9. ImageAI

pip3 install https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.2/imageai-2.0.2-py3-none-any.whl



III. Tải xuống hệ thống dữ liệu RetinaNet tại đây

IV. Mở IDLE Python tạo Project mới và nhập đoạn mã sau

Mã:
from imageai.Detection import ObjectDetection
import os

execution_path = os.getcwd()

detector = ObjectDetection()
detector.setModelTypeAsRetinaNet()
detector.setModelPath( os.path.join(execution_path , "resnet50_coco_best_v2.0.1.h5"))
detector.loadModel()
detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path , "image.jpg"), output_image_path=os.path.join(execution_path , "imagenew.jpg"))

for eachObject in detections:
    print(eachObject["name"] , " : " , eachObject["percentage_probability"] )

V. Di chuyển file image và file thư việnbạn tải về resnet50_coco_best_v2.0.1.h5 vào cùng thư mục. RUN code và lưu với tên mà bạn thích ( VD : Nhandanghinhanh.py)
sau đó xem kết quả

Của mình thì nó như sau

Trước khi nhận dạng
image.jpg


Sau khi nhận dạng ( Click vào phóng to xem kết quả )
imagenew.jpg


Cửa sổ Shell ghi lệnh

car : 74.26453232765198
car : 79.55442667007446
car : 53.49360108375549
car : 54.93771433830261
car : 59.87136960029602
car : 67.7766501903534
person : 80.36023378372192
person : 84.22569036483765
motorcycle : 90.2958631515503
car : 56.56389594078064
car : 85.9704315662384
car : 59.81857776641846
car : 79.32580709457397
car : 83.80572199821472
car : 83.20974111557007
car : 83.4749162197113

Một vài bài test khác

imaged6b4a2f13b8f67a9.jpg

Trước khi quét

imagenew75174e79f47e7c61.jpg

Sau khi nhận dạng
Bạn có thể tham khảo dự án chi tiết hơn tại GitHub

Chúc các bạn thành công

Đinh Quang Vinh sưu tầm​
 

lvt491

Rìu Vàng Đôi
Có code nhận dạng biển số ô tô vs biển số xe máy ko AD ơi
 

Hieu nd

Gà con
Em bị lỗi này và gg nhưng vẫn chưa giải quyết được ạ, ad giải đáp giúp em tí nhé
1212121.png
 


Top