Micorosoft Coginitive Service API – Phép màu công nghệ
Gần đây, khi lang thang trên mạng, mình chợt thấy một bài viết về Micorosoft Coginitive Service API. Sau khi test thử và thấy nó quá “ảo diệu”, mình cầm lòng không được nên phải lên blog viết bài này để chia sẻ cho các bạn. API có thể nhận diện được Maria Oizawa trong ảnh ...
Gần đây, khi lang thang trên mạng, mình chợt thấy một bài viết về Micorosoft Coginitive Service API. Sau khi test thử và thấy nó quá “ảo diệu”, mình cầm lòng không được nên phải lên blog viết bài này để chia sẻ cho các bạn.
API có thể nhận diện được Maria Oizawa trong ảnh =)). Nếu không tin các bạn có thể vào đây testGiới thiệu tổng quan
Nói đơn giản, bộ API này là kết tinh vô số tinh hoa về thuật toán, machine learning, data mining của Microsoft. Sử dụng bộ API này, bạn có thể tạo ra những ứng dụng “vi diệu” mà không cần biết gì về machine learning hay data mining cả.
Bộ API Cognitive Service của Microsoft bao gồm 5 bộ API nhỏ:
- Vision: Nhận diện hình ảnh, khuôn mặt và cảm xúc
- Speech: Nhận diện giọng nói
- Language: Nhận diện ngôn ngữ
- Knowledge: Tra cứu dữ liệu trong giới học thuật (các báo cáo, bài báo khoa học)
- Search: Sử dụng bing để tìm kiếm bằng chữ, hình ảnh, video
Các API về giọng nói, ngôn ngữ chỉ hoạt động được với tiếng Anh và một số ngôn ngữ khác, không có tiếng Việt. Do đó, trong phạm vi bài viết, mình sẽ giới thiệu bộ API Vision (Thật ra đây mới là thằng ngầu nhất).
Tôi đã bật khóc vì xúc động khi test API nàyVision API
Bộ này có 4 set API nhỏ vô cùng bá đạo như sau:
- Computer Vision: Nhận diện các thuộc tính của hình ảnh, các vật thể trong ảnh, đưa ra mô tả. Ngoài ra, API này còn có thể nhận diện được ảnh có phải là ảnh XXX hay không =))). Lúc đầu test mình rất ngạc nhiên vì kết quả API trả về khá là chính xác.
- Face: Nhận diện các khuôn mặt trong hình như Facebook. Bạn cũng có thể thông qua API để huấn luyện cho máy, giúp nó nhận diện người trong ảnh là ai. API này còn có thể nhận được người trong ảnh là nam hay nữ, tuổi khoảng bao nhiêu luôn nhé, rất bá đạo =)).
- Emotion: Nhận diện khuôn mặt và cảm xúc của người trong ảnh. Chức năng này khá vui và hài hước.
- Video: Cho phép nhận diện khuôn mặt, hình ảnh, nhận diện chuyển động, chống rung, tạo thumbnail cho video. API này có vẻ cũng khá hay nhưng mình chưa test.
Cách dùng API
Ngày trước, lúc làm đồ án tốt nghiệp, mình cũng từng làm một dự án liên quan tới nhận diện hình ảnh. Hồi đấy mình sử dụng OpenCV để nhận diện khuôn mặt trong hình và tên người trong ảnh. Do OpenCV viết bằng C++, bạn phải tìm thư viện wrapper bằng Java, C# để sử dụng, khá là mệt.
Cognitive Serivce được Microsoft cung cấp dưới dạng Restful API nên bạn có thể dễ dàng tích hợp nó với mọi ngôn ngữ lập trình. Hiện tại mình đang đã tích hợp nó với bot chat trong NodeJS. Sử dụng API rất đơn giản, bạn không cần cài đặt gì cả, chỉ cần làm 3 bước:
- Đăng ký tài khoản Cognitive Service để lấy key. Một tài khoản free cho phép bạn gọi khoản 5000-10000 request mỗi tháng, cũng khá đủ để nghịch ngợm lung tung rồi.
- Chọn API mình muốn sử dụng, sau đó vào xem document của nó. Ví dụ như mình muốn dùng ComputerVision API để nhận diện hình ảnh, mình sẽ vào đây xem hướng dẫn:https://dev.projectoxford.ai/docs/services/56f91f2d778daf23d8ec6739/operations/56f91f2e778daf14a499e1fa.
- Mỗi API sẽ có 1 API URL riêng. Ta chỉ cần gửi request tới URL này, trong request có kèm theo key và link của hình ảnh muốn nhận diện. Kết quả sẽ được trả về dưới dạng JSON. Trong code mẫu, mình dùng NodeJS, nhưng các bạn có thể dùng C# hay Java tùy ý.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
request({ url: this._analyzeApiUrl, // Thay bằng URL của API headers: { "Ocp-Apim-Subscription-Key": this._analyzeKey // Thay bằng key của bạn }, method: "POST", json: true, body: { "url": imageUrl // Thay bằng url của hình ảnh } }, (err, response, body) => { // Lấy kết quả trong body }); |
Ứng dụng của các API
Nếu bạn có ý định xây dựng một mạng xã hội, bạn sẽ cần chức năng nhận diện khuôn mặt, nhận diện thành viên. Thay vì viết lại chức năng này từ đầu (rất phức tạp, đòi hỏi phải biết về machine learning, data mining), ta có thể dùng FaceAPI để có kết quả một cách nhanh chóng.
Bộ Computer Vision API cho phép ta nhận diện các vật có trong ảnh, có thể dùng để thêm tag cho hình ảnh. Giả sử bạn có một thư viện ảnh và bạn muốn thêm chức năng tìm kiếm theo nội dung ảnh, bạn chỉ cần sử dụng Computer Vision để thêm tag cho các hình. Nếu người dùng muốn tìm hình “chó”, ta chỉ cần query ảnh có tag “chó” là ra kết quả.
Hiện tại, con chat bot của tôi đi code dạo cũng đang tích hợpComputer Vision API và Emotion API để nhận diện hình ảnh và cảm xúc. Bạn nào tò mò có thể vào m.me/toidicodedao để nghịch chơi. Bạn nào có ý tưởng nào hay để sử dụng các API này thì cứ comment nhé.
Techtalk via toidicodedao