So sánh 5 API hàng đầu của Computer Vision
Trong sáu tháng qua, Google, Microsoft và IBM đã công bố một bộ “API thông minh” cung cấp nhiều loại hình hình ảnh, video, giọng nói và nhận dạng văn bản. Ví dụ như qua một bức ảnh ở công viên, bạn có thể nhận biết được các tags bao gồm một con chó, một dĩa nhựa và cây cối. Làm thế nào với các mô hình out-of-the-box ứng dụng cho các mục đích chung, và chúng ta có thể sử dụng chúng để xây dựng các sản phẩm hoặc các tính năng thú vị mới?
Trong bài đăng này, tôi sẽ so sánh khả năng gắn nhãn hình ảnh của năm nhà cung cấp với các quan điểm và đề xuất cho các bạn xây dựng sản phẩm. Tôi cũng cung cấp một công cụ mã nguồn mở, Cloudy Vision, để bạn có thể thử nghiệm những hình ảnh của riêng bạn và chọn nhà cung cấp tốt nhất cho bạn (spoiler: Google không phải là người chiến thắng). Cuối cùng, tôi chia sẻ kết quả ghi lại 40 ví dụ hình ảnh.
Lưu ý rằng mục đích của tôi nhằm để có được một cảm nhận về chất lượng của các API này, đây không phải là một nghiên cứu chính xác. Tôi cũng tập trung vào ghi nhãn hình ảnh, không phải phát hiện khuôn mặt hoặc OCR
Approach
Tôi bắt đầu bằng cách chụp một vài bức ảnh và chạy chúng thông qua các công cụ kiểm tra dựa trên web của một số nhà cung cấp. Kế hoạch của tôi là tự tìm kiếm các kết quả trong bảng tính. Than ôi, nhưng quá trình này quá tẻ nhạt. Nó cũng không đầy đủ bởi vì không phải tất cả các nhà cung cấp đều có các công cụ kiểm tra như vậy, ý tôi là Google.
Tôi nhanh chóng nhận ra rằng để xem xét và so sánh từng phần của nhiều hình ảnh, cách tốt nhất là xây dựng một công cụ nhỏ. Tôi đã viết một Python script để lặp lại một thư mục các hình ảnh, gọi các API của nhà cung cấp khác nhau, cache các câu trả lời, và hiển thị một trang web để xem các dữ liệu tôi quan tâm.
Cloudy Vision là một open source tools để tạo ra các kết quả như thế này cho bộ ảnh của bạn.
Cloudy Vision có thể ghi tag hình ảnh từ Microsoft, Google, IBM, Clarifai và Cloud Sight nhưng rất dễ mở rộng để hỗ trợ nhiều nhà cung cấp hơn. Nếu bạn có tập hình ảnh và muốn khám phá các tags, đây là một điểm khởi đầu tốt cho đánh giá định tính, cũng như cho việc kiểm tra tính chính xác nghiêm ngặt hơn (ví dụ: so sánh nhãn tính với bộ yêu cầu của bạn).
Observations
Tôi dùng khoảng bốn mươi hình ảnh thông qua 5 nhà cung cấp. Tôi khuyên bạn nên xem trang đó tạo thành các hiển thị của chính bạn trước khi đi xa hơn. Dưới đây là một số điều tôi nhận thấy:
- Hầu hết các hình ảnh đều được gắn với một loại nhãn chính xác cao.
Kết quả đã đủ tốt để hiểu được bản chất của một hình ảnh, ví dụ: nó là thực phẩm, phòng, nhạc cụ, hay động vật? Khá ấn tượng khi xem xét rất nhiều thứ bạn có thể ném vào nó.
-
Labels có tính cụ thể không đáng tin cậy
Nếu bạn muốn biết chi tiết, chẳng hạn như loại thực phẩm, hoặc chính xác là động vật nào trong bức ảnh, kết quả có sự khác biệt rất lớn. Một số ấn tượng, như nhận ra tablas của tôi (trống cổ điển Ấn Độ), nhưng nhiều hình ảnh không có nhiều nhãn cụ thể.
-
Rất hiếm có lỗi, nhưng sẽ xảy ra
Trong hầu hết các trường hợp, khi thuật toán bị lẫn lộn, nó có xu hướng tạo nhãn có điểm tin cậy thấp, thay vì chỉ đoán sai – vì vậy bạn có thể bỏ qua chúng một cách an toàn. Nhưng ngay cả trong thư mục lưu trữ của tôi, 5-10% các hình ảnh chỉ được dán nhãn không chính xác, đôi khi có kết quả vui nhộn.
-
Có sự khác biệt đáng kể giữa các nhà cung cấp.
Vì quan điểm công khai của họ, và những thành tựu gần đây về AI, tôi nghĩ rằng kết quả của Google sẽ cao hơn các nhà cung cấp khác, nhưng điều đó không nhất thiết phải đúng. Trong tập đoàn nhỏ của tôi, tôi đánh giá Clarifai ở vị trí hàng đầu, tiếp theo là Google và Microsoft về chất lượng tương đương, và sau đó thấp hơn IBM. Lưu ý rằng Clarifai là một công ty tư nhân chỉ tập trung vào việc cung cấp các API nhận diện hình ảnh, và họ đã làm việc này từ năm 2014, trước khi những người khổng lồ bước vào không gian này.
-
Clarifai làm tốt, Google với Microsoft cũng tạm được, Cloudsight… hừm
Bạn có thể nhận thấy trong các ví dụ ở trên rằng các chú thích của Cloud Sight thật tuyệt vời (bạn có thể xem ví dụ bên dưới). Nếu bạn truy cập trang web của họ, bạn sẽ nhận thấy rằng họ giới thiệu về ‘công nghệ nhận dạng hình ảnh’ của họ, và do đó bạn có thể đoán rằng đó là do một mô hình machine learning ấn tượng. Tuy nhiên, có vẻ như họ gắn tag của con người nhiều hơn so với những gì mà họ marketing.
Thứ nhất, độ trễ cho hầu hết các nhà cung cấp API là chưa tới 1 giây, trong khi các tài liệu của Cloud Sight yêu cầu bạn đợi 6-15 giây (trong thực tế thì nó khoảng 5-30). Thứ hai, tôi nhận ra một điều này bên trong tài liệu về sự riêng tư của họ “Dịch vụ của chúng tôi dùng một công nghệ độc quyền sử dụng cả computer vision và crowdsourcing”.Thứ ba, một số tìm kiếm khác đã bật lên chủ đề Reddit về cách chúng hoạt động, và nhận xét này từ humman tagger. Và cuối cùng, tôi đã gửi cùng một hình ảnh với các tên tập tin khác nhau, và có phụ đề khác nhau, cho thấy rằng việc gắn tag của con người là có liên quan. Oh, và nhãn hiệu đầu tiên có lỗi chính tả …!
Vì vậy, trong khi kết quả của Cloud Sight thực sự ấn tượng, tôi không chắc đó là công bằng khi so sánh chúng với các nhà cung cấp khác từ quan điểm nhìn của machine learning thuần túy. Hơn nữa, chi phí của họ cao hơn đáng kể, có thể cho rằng có nhiều trường hợp gắn thẻ thủ công ở phía sau hơn họ cho phép.
Tôi đã gửi cùng một hình ảnh nhưng với một tên tập tin khác nhau cho tất cả các nhà cung cấp. Tất cả đều có cùng các thẻ trừ Cloud Sight.
-
Xoay chiều có thể ảnh hướng đến độ chính xác
Tôi đã làm một phiên bản được quay ngược của hình ảnh của chú chó con được hiển thị ở trên,và như vậy, tôi có kết quả khác nhau. Điều quan trọng là phải nhận biết được, đặc biệt là vì thông tin xoay trong JPEG được lưu trữ trong dữ liệu EXIF và có thể được xử lý bằng các cách khác không theo tiêu chuẩn bởi các ứng dụng khác nhau.
-
Kết quả sẽ tốt hơn nếu bạn zoom vào các khu vực cần quan tâm
Tôi muốn xem nếu tôi có thể lấy camera an ninh của tôi để cho tôi biết rằng có một gói hàng ở cửa. Nó đã không hoạt động tốt, cho đến khi tôi cắt hình ảnh của khu vực được quan tâm để xác định. Nếu trường hợp sử dụng của bạn cho phép người dùng xác định khu vực quan tâm, hãy xem xét cách tiếp cận này.
-
Giá cả theo số lượng
Giả sử bạn có 100.000 hình ảnh để dán nhãn. Google sẽ có chi phí 500 đô la, Clarifai 220 đô la, 200 đô la của IBM và giá của Microsoft vẫn chưa được công bố.
Không quá tồi, xem xét có giá rẻ nhất để có được ở quy mô lớn hoặc để offline processing(so với thời gian thực). Lưu ý rằng Cloud Sight, nhà cung cấp nhãn hiệu có thể đang thực hiện với rất nhiều con người, sẽ có giá 3.000 đô la, mức độ lớn hơn so với các nhà cung cấp gắn bó với machine learning.
Hãy lấy ví dụ giả thuyết: nếu tôi là Dropbox và tôi muốn cung cấp hình ảnh gắn tag cho khách hàng của tôi, giả sử mỗi khách hàng tải lên 500 hình ảnh một tháng, tôi sẽ phải trả 2 đô la cho mỗi khách hàng. Với kế hoạch hàng năm 100 đô la, điều đó sẽ ảnh hưởng đến lợi nhuận của Dropbox, nhưng về mặt lý thuyết, một công ty ở quy mô đó sẽ được giảm giá tốt hơn hoặc chuyển sang xây dựng in house sau khi chứng minh được giá trị cho thị trường.
Kết luận
Tôi ấn tượng với chất lượng phân loại chung – nó đủ tốt để có được đặc tính cơ bản của một hình ảnh, nhanh và chi phí thấp ở quy mô tương đối thấp.
Điều đó nói rằng, rất khó để đánh giá một giải pháp mà không có một vấn đề thực sự. Ví dụ, việc sử dụng là để phân loại(ví dụ: “đây là thực phẩm”), nếu tôi cần những thông tin chi tiết cho trường hợp sử dụng của tôi (ví dụ: “trang web công thức nấu ăn của tôi cần biết đây có phải là một mẩu thịt hay rau”) . Với ý nghĩ đó, hãy để tôi đặt ra một vài giả thuyết khi bạn có thể thấy các API này có giá trị một lần với bạn.
Các vùng mà API sẽ tỏ ra hữu ích ngay lập tức
-
Tổ chức và phân tích hình ảnh chung
Nếu sản phẩm của bạn là trang chia sẻ ảnh người tiêu dùng, trang web chụp ảnh cổ tích, hoặc chỉ có rất nhiều hình ảnh đa dạng mà bạn muốn nhóm và tìm kiếm, bạn có thể thấy rằng việc ghi nhãn chung là đủ để tăng giá trị. Điều này cũng đúng nếu bạn đang cố gắng nắm bắt được nội dung trong một tập hợp lớn các hình ảnh (ví dụ: “những loại gì được hiển thị trên áp phích phim và các thể loại khác nhau?”).
-
Khả năng phát triển E-commerce
Các trang web thương mại điện tử thường kết thúc với nhiều SKUs nơi họ có ít thông tin về sản phẩm nhưng có thể có hình ảnh. Không có từ khóa văn bản, các sản phẩm này phần lớn không thể tìm thấy. Ngay cả việc ghi nhãn cơ bản, như “áo thun” hoặc “áo mùa hè” có thể tăng doanh thu bằng cách làm cho sản phẩm ẩn này trước đây có sẵn thông qua tìm kiếm, trình duyệt, đề xuất…
-
Sử dụng tiểu sử dữ liệu của hình ảnh
Có rất nhiều camera theo dõi an ninh / vật nuôi / em bé ở ngoài đó có thể làm được nhiều hơn với dữ liệu hình ảnh mà họ đang thu thập. Mặc dù nhiều ứng dụng sẽ cần các mô hình tùy chỉnh (ví dụ: giám sát trẻ em Nanit), có thể có một số có thể sử dụng các API chung này, ví dụ: nhận được báo cáo hàng ngày từ camera an ninh nói với tôi khi người gửi thư của tôi đến, các thành viên trong gia đình vào / ra, con chó hàng xóm đi dạo, vân vân.
-
Hiểu hành vi của người dùng để tương tác, giữ chân, bán hàng
Trong nhiều trường hợp, hãy hiểu thêm về hành vi sử dụng của khách hàng giúp bạn cung cấp trải nghiệm sản phẩm tốt hơn hoặc cơ hội để bán hàng. Nếu bạn có một sản phẩm nơi người dùng tải lên hình ảnh của chính họ, bạn có thể thấy những gì họ đang làm và cung cấp cách để tự động cải thiện hình ảnh, bán cho họ một phiên bản tốt hơn hoặc chỉ cần gắn thẻ người dùng bằng một nhãn hiệu giúp bạn tiếp thị họ tốt hơn hình thức marketing offline.
Những vùng mà các API này sẽ không đáp ứng được
-
Yêu cầu đặc biệt cao, hoặc không phổ biến
Nếu bạn có một trang web về công thức nấu ăn và cần biết liệu hình ảnh có nigiri, sashimi, hoặc maki trong đó, thì có thể bạn muốn sử dụng một mô hình tùy chỉnh. Một số nhà cung cấp đã cung cấp các mô hình cụ thể cho các yêu cầu khác nhau, ví dụ: Clarifai có các mô hình tùy chỉnh cho đám cưới, du lịch hoặc thực phẩm.
Có nhiều khả năng, nếu bạn có thể sản xuất một bộ sưu tập có chú giải đáng kể, bạn sẽ muốn mô hình phân loại của riêng bạn. Trong trường hợp này, bạn không nhất thiết phải bắt đầu từ đầu bằng cách xây dựng phân loại của riêng bạn, các nhà cung cấp khác nhau cũng cung cấp các API đơn giản để đào tạo phân loại với các ví dụ tích cực (ví dụ “đây là sashimi”) và các ví dụ tiêu cực (ví dụ: “như sashimi nhưng không phải nó”). Tôi đã không cố gắng làm điều này, nhưng tôi mong muốn nghe nếu những người khác đã tìm thấy chúng để làm tốt.
-
Độ chính xác là quan trọng
Tính chính xác về gắn thẻ chung phụ thuộc vào mức độ chi tiết mà trường hợp sử dụng của bạn cần. Tôi đã không thực hiện đánh giá độ chính xác định lượng, nhưng số liệu định tính nhỏ của tôi cho thấy bạn có thể có khoảng 80-90% (phạm vi rộng). Nếu bạn cần gắn thẻ chính xác cao, các mô hình này có thể là một khởi đầu tốt, nhưng bạn sẽ muốn tăng thêm nó với một số loại xét duyệt của con người. Trong những trường hợp này, Cloud Sight có thể là một giải pháp tuyệt vời, nhưng cũng tốt Mechanical Turkey, hoặc người mới tham gia vào vấn đề này như Spare5 (đây cũng là những giải pháp tuyệt vời để xây dựng đào tạo phân loại của riêng bạn).
Suy nghĩ riêng:
- Các API ghi nhãn hình ảnh này có nên dùng không?
Tôi thấy khó để có được một ý tưởng về bao nhiêu người đang thực sự sử dụng các API này trong sản xuất. Có một số tín hiệu, chẳng hạn như các chủ đề như thế này trên Hacker News, hoặc phần thảo luận khá sôi động trên các diễn đàn Azure, nhưng tôi đã không nghe thấy từ những người dùng hài lòng. Tôi thầm nói rằng đây là những trường hợp tôi mô tả ở trên, và do đó, sẽ đặt cược rằng chúng ta sẽ thấy các công ty tư nhân và cộng đồng tiếp tục cung cấp các dịch vụ này. - Hình ảnh có dán nhãn chung chung cho Google, MS, v.v …?
Tôi không chắc chắn về nhãn dán chung chung, nhưng những gì tôi biết là những sản phẩm gateway tuyệt vời cho các công ty cuối cùng sẽ phát triển và muốn đầu tư nhiều hơn vào việc xây dựng các mô hình tùy chỉnh. Tại thời điểm đó, bạn có thể bắt đầu tận dụng Tensor Flow của Google hoặc các sản phẩm Azure khác của Microsoft để giúp xây dựng, đào tạo và triển khai các mô hình của riêng bạn; và đây là nơi đặt cược chiến lược dài hạn thật sự. Vì vậy, mặc dù dán nhãn hình ảnh chung chung có thể không phải là mục tiêu cuối cùng của việc kinh doanh, nhưng đó là một cách xứng đáng để chiếm được khách hàng tương lai. - Tôi rất thích nghe từ người dùng thực.
Tôi tò mò muốn nghe từ những người cần các giải pháp gắn thẻ, và đã thử bất kỳ nhà cung cấp này. Trường hợp sử dụng của bạn là gì? Liệu bạn có dùng các nhãn APIs trước tiên hoặc bạn cần một giải pháp tùy chỉnh nhiều hơn? Bạn đã quyết định đi với những nhà cung cấp này hay không? Bạn đã làm gì với thay vào đó, và làm thế nào nó là làm việc cho bạn? Nếu bạn có khuynh hướng chia sẻ, tôi rất muốn nghe nhiều hơn, và có thể đăng một bài đăng blog cập nhật lên blog này.
Resources
- Cloudy Vision Github page
- Cloudy Vision output for my small corpus
- Microsoft Computer Vision API
- Google Cloud Vision API
- IBM Vision Recognition API
- Cloud Sight API
- Clarifai
Nguồn: blog.topdev.vn via goberoi.com
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- F Framework nào tốt nhất cho dự án của bạn? – Checklist chi tiết
- K Kinh nghiệm xử lý responsive table hiệu quả
- S Stackoverflow là gì? Bí kíp tận dụng Stack Overflow hiệu quả
- 7 7 kinh nghiệm hữu ích khi làm việc với GIT trong dự án
- B Bài tập Python từ cơ bản đến nâng cao (có lời giải)
- B Bảo mật API là gì? Một số nguyên tắc và kỹ thuật cần biết
- H Hướng dẫn cài đặt và tự học lập trình Python cơ bản từ A-Z
- C Chinh Phục Phân Tích Dữ Liệu Với Pandas Trong Python: Hướng Dẫn Từng Bước
- D Display CSS là gì? Cách khai báo và sử dụng thuộc tính display trong CSS