This tutorial shows you how to build a dog breed identifier similar to Microsoft's What-Dog AI, but using Diffbot's Image API. The entire application is less than 100 lines of code and leverages Imgur for image hosting to minimize costs.
Key Features:
Getting Started:
composer.json
to install the necessary libraries:{ "require": { "swader/diffbot-php-client": "^2", "php-http/guzzle6-adapter": "^1.0" }, "minimum-stability": "dev", "prefer-stable": true, "require-dev": { "symfony/var-dumper": "^3.0" } }
<code>Run `composer install`. The `minimum-stability` setting accommodates a beta dependency.</code>
Code Structure (index.php):
The core logic resides in index.php
. The code first handles image uploads via an HTML form (omitted for brevity, focusing on the PHP backend). Imgur is used for hosting, saving on server costs. The uploaded image URL is then sent to Diffbot's Image API.
<?php require 'vendor/autoload.php'; $token = 'YOUR_DIFFBOT_TOKEN'; // Replace with your Diffbot token $imgur_client = 'YOUR_IMGUR_CLIENT_ID'; // Replace with your Imgur Client ID if ($_SERVER['REQUEST_METHOD'] == 'POST') { // Handle image upload (using $_FILES) or URL submission (using $_POST['url']) // ... (Image upload to Imgur using Guzzle, obtaining the image URL) ... if (!isset($url) || empty($url)) { die("Image upload or URL submission failed."); } $diffbot = new Swader\Diffbot\Diffbot($token); $imageDetails = $diffbot->createImageAPI($url)->call(); $tags = $imageDetails->getTags(); echo "<img src=\"{$url}\" style="max-width:90%"500\" alt="Building Microsoft's What-Dog AI in under 100 Lines of Code" ></img>"; if (empty($tags)) { echo "<h4>No breed identified.</h4>"; } else { echo "<h4>Suggested Breed(s):</h4>"; foreach ($tags as $tag) { echo "- <a href=\"https://www.bing.com/images/search?q=" . urlencode($tag['label']) . "\" target=\"_blank\">" . $tag['label'] . "</a><br>"; } } } ?> <!-- HTML form for image upload or URL input -->
Functions (Helper Functions):
The code uses helper functions (not shown above) to create links to Bing image search results for each suggested breed.
Testing and Results:
The tutorial includes several test images and their results, highlighting both successes and failures of the breed identification. The accuracy is comparable to Microsoft's What-Dog AI, demonstrating the feasibility of building a similar application with Diffbot.
Conclusion:
This tutorial showcases the ease of integrating AI-powered image analysis into a simple web application. While the accuracy isn't perfect, it highlights the potential of readily available APIs for building powerful image recognition features. Remember to replace placeholder tokens and IDs with your own.
The above is the detailed content of Building Microsoft's What-Dog AI in under 100 Lines of Code. For more information, please follow other related articles on the PHP Chinese website!