Crawl nhanh hình ảnh từ Google Image cho bất kì chủ đề nào bạn cần


#1

Khi cần data set về hình ảnh, bạn sẽ gặp nhiều trở ngại trong việc lấy được ảnh chất lượng và có thể train được. Chúng ta lại cần ai đó label sẵn cho mình, vậy dùng Google Images luôn cho tiện, cứ thế feed vào NN là chạy thôi :smiley:

Đây là tool mình dùng: https://github.com/hardikvasa/google-images-download

Cơ bản thì đây là một script viết bằng Python cho phép bạn download ảnh từ Google Images theo từ khóa bạn chỉ định, số lượng do bạn chỉ định, hỗ trợ nhiều cách tìm kiếm khác nhau (tìm đúng từ, từ gần nghĩa…). Cách dùng cũng cực kì đơn giản:

Usage:

Cài đặt: pip install google_images_download

Cơ bản là sẽ chạy command như này: googleimagesdownload [Arguments...]

Bạn cũng có thể gọi nó lên từ script python khác


from google_images_download import google_images_download

response = google_images_download.googleimagesdownload()

absolute_image_paths = response.download({<Arguments...>})

LƯU Ý: Nếu bạn muốn download hơn 100 ảnh, bạn sẽ phải dùng Chrome Driver, cơ bản là một bộ tool để script có thể fetch được data nhiều hơn. Download file binary của Chrome Driver ở link: https://sites.google.com/a/chromium.org/chromedriver/downloads

Sau khi có file binary rồi thì bạn lưu nó về chỗ nào đó, tí nữa khi chạy script sẽ dùng.

Ví dụ

googleimagesdownload --keywords "điện thoại cũ" --limit 1000 -cd ./chromedriver

keywords, limit thì dễ hiểu rồi ha, còn cái -cd là đường dẫn tới file Chrome Driver khi nãy bạn đã download.

Làm sao để train engine nhận diện hình ảnh

Cái này chắc để khi nào rảnh mình làm thành bài riêng ha, còn bạn nào cần thì có thể tham khảo trước tại đây: https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/. Rất dễ làm, kể cả cho người mới không có nhiều kiến thức về toán hay ML chuyên sâu.


#2

A cho e hỏi với là cái script này kéo nhanh không a, tại e hay có nhu cầu kéo nhiều hình (cái này để e thử cũng được), và một câu nữa là kéo hình từ google là hay bị trùng hình, không biết bên mình xử lý trùng hình như thế nào ạ, bên e đợt có làm thì xóa hình bằng tay, không biết bên a có cách nào hay hơn không a.


#3

Nhanh bạn, chạy nhiều instance của script song song nhau vẫn ok.

Hình trùng thì hiện tại mình chưa để tâm lắm :smiley: chắc detect bằng cái gì đó bên computer vision hoặc dễ nhất là file name thôi. Mình chưa thử làm vụ loại ảnh trùng nên không chắc.

How about hash cái ảnh ra rồi so sánh?


#4

Vậy là bên a train không quan tâm ảnh trùng luôn cũng được hả a. E cũng nghĩ đến cái vụ hash nhưng lo về mem, ok sẽ thử, còn filename thì chưa đủ. Anyway thanks a :smiley:


#5

Chắc trong tương lai cũng sẽ gặp đó bạn :smiley: mà hiện tại thì chưa lo tới nên cũng không sao