Top Ad unit 728 × 90


Train (Đào tạo, máy học) các đối tượng tùy chỉnh sử dụng Tensorflow - Phần 2

      Đây là bài viết tiếp theo Phần 1 Train Object Tensorflow Trong phần này chúng ta sẽ hoàn thiện chương trình train đối tượng tùy chỉnh dùng Tensorflow.
   
    Bước tiếp theo: Trong phần này chúng ta sẽ đào tạo mô hình(model) phát hiện đối tượng của chúng ta để phát hiện đối tượng tùy chỉnh . Để làm được điều này, chúng ta cần các hình ảnh, kết hợp TFRecords cho dữ liệu đào tạo và thử nghiệm, và sau đó chúng ta cần phải thiết lập cấu hình của mô hình(model), sau đó chúng ta có thể đào tạo(train). Điều đó có nghĩa là chúng ta cần phải thiết lập một tệp cấu hình.

       Ở đây, chúng ta có hai lựa chọn. Chúng ta có thể sử dụng một mô hình đã được đào tạo trước(pre-train model) và sau đó sử dụng phương pháp chuyển tiếp để học(learn) một vật mới hoặc chúng ta có thể học các vật mới hoàn toàn từ đầu. Lợi ích của việc chuyển tiếp học(transfer learning) là việc đào tạo có thể nhanh hơn nhiều, và dữ liệu cần thiết mà bạn cần là ít hơn. Vì lý do này, chúng ta sẽ dung transfer learning o day.

        TensorFlow có khá nhiều pre-train models với các file điểm kiểm soát có sẵn , cùng với các files cấu hình. Bạn có thể tự mình làm tất cả những điều này nếu muốn bằng cách xem tài liệu về công việc cấu hình của họ. Đối tượng API cũng cung cấp một số cấu hình mẫu để lựa chọn.

Chúng ta sẽ làm với mobilenet, sử dụng các điểm kiểm tra và tập tin cấu hình sau đây

 

Đặt cấu hình trong thư mục training, và giải nén ssd_mobilenet_v1 trong thư mục models/object_detection. Trong tệp cấu hình, bạn cần phải tìm kiếm tất cả các điểm PATH_TO_BE_CONFIGURED và thay đổi chúng. Bạn cũng có thể muốn thay đổi kích thước batch. Hiện tại, nó được thiết lập là 24 trong tập tin cấu hình của tôi.

Các mô hình khác có thể có kích cỡ batch khác nhau. Nếu bạn gặp lỗi bộ nhớ, bạn có thể thử giảm kích thước batch để mô hình phù hợp với VRAM của bạn. Cuối cùng, bạn cũng cần thay đổi tên checkpoint /path, num_classes thành 1, num_examples thanh12, và label_map_path: "training / object-detect.pbtxt".

Đó là một số chỉnh sửa, đây là tệp cấu hình đầy đủ của tôi:




 

bên trong thư mục training , tạo một file tên object-detection.pbtxt: với nội dung
 
Cài đặt thư viện hỗ trợ cho python và set lại PythonPart. (từ models/research)
 
Từ thư mục models/object_detection:
 
Chúng ta sẽ có output:
Tùy thuộc vào GPU của bạn và số lượng dữ liệu đào tạo bạn có, quá trình này sẽ mất một khoảng thời gian khác nhau. Nếu bạn có nhiều dữ liệu đào tạo, có thể mất nhiều thời gian hơn. Bạn muốn loos khoang ~ 1 (hoặc thấp hơn). Chung ta sẽ không ngừng train cho đến khi bạn chắc chắn loss dưới 2. Bạn có thể kiểm tra mô hình làm như thế nào thông qua TensorBoard.

Từ thư mục models/research/object_detection, mở terminal, gõ lệnh để mở log:
 


Sau đó chúng ta mở link jacky:6006 để theo dõi biểu đồ train

Biểu đồ loss
python tutorials

Ý nghĩa của loss

 

Ở đây mình không dịch ra tiếng việt vì một số thuật ngữ không biết dịch như thế nào.

 

Bước cuối cùng: Export train file và tạo thử project với train file vừa tạo.
        Sau khi chạy được khoảng 3 tiếng khi mà train loss vào khoảng 1 chúng ta có thể tắt train và tiến hành export train file.
        Chúng ta có thể thấy trong thư mục training sẽ có rất nhiều điểm model checkpoint đã được tạo, và tôi sẽ lấy lần cuối cùng với loss thấp nhất để export ra file train .

        Để thực hiện việc export graph file train chúng ta có sẵn file mà tensorflow opensource cung cấp "trong thư mục models/research/object_detection [export_inference_graph.py] " Để chạy scprit này chúng ta cần thực hiện lệnh sau

1> Từ folder: models/research

 
2> Từ folder: models/research/object_detection

Trong đó "training/model.ckpt-1939" là đường dẫn tới file model train; "ssd_mobilenet_v1_pets.config" là đường dẫn tới file configure
"macNchees_graph" là folder train cuối cùng chúng ta cần export.

Sau khi chạy xong chúng ta nhận được một folder chứa các tập tin đã train cần thiết. Tiếp theo chúng ta sẽ mở một chương trình object detection có sẵn trong thư mục của tensorflow và dùng file train của chúng ta để thử nhận dạng đối tượng.

Ở đây từ file gốc chúng ta cần thay đổi đường dẫn tới train folder:

 
Và tất nhiên đường dẫn tới ảnh test mình sẽ thay đổi tí xíu tùy vào ảnh mình đặt tên để test thử, ở đây mình đặt là image 3 tới 5
 

Cuối cùng khi chạy chương trình chúng ta nhận được kết quả như mong muốn, chương trình đã nhận dang được macandcheese


Video hướng dẫn:


Train (Đào tạo, máy học) các đối tượng tùy chỉnh sử dụng Tensorflow - Phần 2 Reviewed by Jacky on tháng 12 17, 2017 Rating: 5

Không có nhận xét nào:

All Rights Reserved by Cộng Đồng OpenCV © 2017
Edit bởi: Jacky Le | Youtube Channel: JACKY LE

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.