From fa026dc4b33d0fdba4e25ef6114650020ebcd161 Mon Sep 17 00:00:00 2001 From: Robert Dill Date: Fri, 5 Jan 2018 15:23:38 -0500 Subject: [PATCH] updated Chapter 09 Visual Recognition --- .../Documentation/answers/images_complete.js | 2 +- .../answers/z2c-image_complete.js | 92 +------ Chapter09/HTML/js/z2c-image.js | 31 --- Chapter09/controller/env.json | 4 +- .../controller/restapi/features/images.js | 4 +- Chapter09/neg_images.sh | 78 ++++++ Chapter09/readme.MD | 260 ++++++++++++++++++ Chapter09/readme.pdf | Bin 0 -> 69032 bytes 8 files changed, 356 insertions(+), 115 deletions(-) create mode 100755 Chapter09/neg_images.sh create mode 100644 Chapter09/readme.MD create mode 100644 Chapter09/readme.pdf diff --git a/Chapter09/Documentation/answers/images_complete.js b/Chapter09/Documentation/answers/images_complete.js index 1cac446a..e69fc595 100644 --- a/Chapter09/Documentation/answers/images_complete.js +++ b/Chapter09/Documentation/answers/images_complete.js @@ -19,7 +19,7 @@ var busboy = require('connect-busboy'); var watson = require('watson-developer-cloud'); var request = require('request'); var apiKey = require("../../env.json").visual_recognition.api_key; -var vr_classifier = require("../../env.json").vr_classifier_id; +var vr_classifier = require("../../env.json").visual_recognition.classifier_id; /** diff --git a/Chapter09/Documentation/answers/z2c-image_complete.js b/Chapter09/Documentation/answers/z2c-image_complete.js index e8b99f61..42bb90e3 100644 --- a/Chapter09/Documentation/answers/z2c-image_complete.js +++ b/Chapter09/Documentation/answers/z2c-image_complete.js @@ -15,31 +15,6 @@ */ // z2c-images.js var b_Droppable, _url, _image, droppedFiles, $form, c_res ; -// in this app, collections and locations are matched JSON objects. The logic, in retrospect, would be simpler if these were -// combined into a single json object. If you want to do that, a structure that would be more effective would be: -// {"": {"id": "", "path": ""}, "": {"id": "", "path": ""}, etc} -// for example, using the first two image sets below: -// {"water": {"id": "water_8fe4c6", "path": "/images/Landscape/Water/"},"collage": {"id": "collage_fe9bf8", "path": "/images/Collage/"}} -var collections = { - "water": "water_8fe4c6", - "collage": "collage_fe9bf8", - "still": "still_36b472", - "forest": "forest_2c108f", - "abstract": "abstract_626032", - "beach": null, - "building": null, - "garden": null -}; -var locations = { - "water": "/images/Landscape/Water/", - "collage": "/images/Collage/", - "still": "/images/Still/", - "forest": "\\images\\Landscape\\Forest\\", - "abstract": "\\images\\Abstract\\", - "beach": "\\images\\Landscape\\Beach\\", - "building": "\\images\\Landscape\\Building\\", - "garden": "\\images\\Landscape\\Garden\\" -}; // visual recognition has an image limit of 2Mb var maxSize = 2097152; @@ -152,68 +127,27 @@ function displayImageClassificationResults(_target, _data) console.log("displayImageClassificationResults entered with: "+_data); // turn the returned string back into a JSON object var imageResults = JSON.parse(_data); + console.log("displayImageClassificationResults parsed results: ",imageResults); + // create a display table var _tbl = ""; var _image = imageResults.images[0].image; // iterate through the classification results, displaying one table row for each result row - for (each in imageResults.images[0].classifiers[0].classes) - { (function (_idx, _obj) { - var _disabled = (collections[_obj[_idx].class] == null) ? ", mic_disabled" : ""; - _tbl += '"'; - })(each, imageResults.images[0].classifiers[0].classes) + if (imageResults.images[0].classifiers.length === 0) + { _tbl += ""} + else + { + for (each in imageResults.images[0].classifiers[0].classes) + { + (function (_idx, _obj) { + _tbl += ''; + })(each, imageResults.images[0].classifiers[0].classes) } + } // close the table _tbl += "
Image ClassProbability
'+_obj[_idx].class+''+_obj[_idx].score+'
No Results with higher than 50% probability
'+_obj[_idx].class+''+_obj[_idx].score+'
"; // and append it to the target. + console.log(_tbl); _target.append(_tbl); } - -/** - * find an image within an image collection - * @param {String} image - the image to search for in the provided set - * @param {String} collection - the name of the collection to search - */ -function findInCollection(image, collection) -{ - // empty the target and display an animated gif - c_res.empty(); c_res.append("
"); - // if the collection is not available, update the page with an appropriate message - if(collections[collection] == null) {c_res.append("

I'm sorry, but the "+collection+" is not yet available.")} - console.log("requesting search for image "+image+" in collection: "+collection); - // set the post options - var options = {}; - options.image = image; options.collection = collections[collection]; - // find a similar image - $.when($.post('/images/find', options)).done(function(res){ - console.log(res); - // display the find results - displayCollectionResults(collection, res); - }); - -} -/** - * set the document cookies to update the previous and next steps - * @param {String} type - the classified type of image - * @param {String} _collection - the result set from the find similar process - */ -function displayCollectionResults(type, _collection) -{ - // empty the html target - c_res.empty(); - var found = _collection; - // get the name of the source file - var sourceName = found.image_file; - // create a display table - var tableOut = ""; - // iterate through the found images, displaying each one with it's name, a picture and the confidence level - for (each in found.similar_images) - {(function(_idx, _obj){ - tableOut += ""; - })(each, found.similar_images);} - // close the table - tableOut += "
Image NameImageConfidence
"+_obj[_idx].image_file+"
"+_obj[_idx].score+"
"; - // and display it - c_res.append(tableOut); - -} diff --git a/Chapter09/HTML/js/z2c-image.js b/Chapter09/HTML/js/z2c-image.js index b264d60f..faccbf4d 100644 --- a/Chapter09/HTML/js/z2c-image.js +++ b/Chapter09/HTML/js/z2c-image.js @@ -15,26 +15,6 @@ */ // z2c-alchemy.js var b_Droppable, _url, _image, droppedFiles, $form, c_res ; -var collections = { - "water": "water_8fe4c6", - "collage": "collage_fe9bf8", - "still": "still_36b472", - "forest": "forest_2c108f", - "abstract": "abstract_626032", - "beach": null, - "building": null, - "garden": null -}; -var locations = { - "water": "/images/Landscape/Water/", - "collage": "/images/Collage/", - "still": "/images/Still/", - "forest": "/images/Landscape/Forest/", - "abstract": "/images/Abstract/", - "beach": "/images/Landscape/Beach/", - "building": "/images/Landscape/Building/", - "garden": "/images/Landscape/Garden/" -}; var maxSize = 2097152; @@ -56,14 +36,3 @@ function displayImageClassificationResults(_target, _data) _target.empty(); } - -function findInCollection(image, collection) -{ - c_res.empty(); c_res.append("

"); - -} -function displayCollectionResults(type, _collection) -{ - c_res.empty(); c_res.append("
"); - -} diff --git a/Chapter09/controller/env.json b/Chapter09/controller/env.json index e8a7b3ed..81746e03 100644 --- a/Chapter09/controller/env.json +++ b/Chapter09/controller/env.json @@ -47,8 +47,8 @@ "visual_recognition": { "url": "", "note": "It may take up to 5 minutes for this key to become active", - "api_key": "" + "api_key": "", + "classifier_id": "" }, - "vr_classifier_id": "", "sessionSecret" : "" } diff --git a/Chapter09/controller/restapi/features/images.js b/Chapter09/controller/restapi/features/images.js index 366866c7..ea59a1aa 100644 --- a/Chapter09/controller/restapi/features/images.js +++ b/Chapter09/controller/restapi/features/images.js @@ -18,8 +18,8 @@ var path = require('path'); var busboy = require('connect-busboy'); var watson = require('watson-developer-cloud'); var request = require('request'); -var apiKey = require("../../env.json").visual_recognition.apikey; -var vr_classifier = require("../../env.json").vr_classifier_id; +var apiKey = require("../../env.json").visual_recognition.api_key; +var vr_classifier = require("../../env.json").visual_recognition.classifier_id; exports.upload= function(req, res){ diff --git a/Chapter09/neg_images.sh b/Chapter09/neg_images.sh new file mode 100755 index 00000000..6dbbb09f --- /dev/null +++ b/Chapter09/neg_images.sh @@ -0,0 +1,78 @@ +#!/bin/bash +# create negative image zips from faces94 images + + YELLOW='\033[1;33m' + RED='\033[1;31m' + GREEN='\033[1;32m' + RESET='\033[0m' + +# indent text on echo +function indent() { + c='s/^/ /' + case $(uname) in + Darwin) sed -l "$c";; + *) sed -u "$c";; + esac +} + +# displays where we are, uses the indent function (above) to indent each line +function showStep () + { + echo -e "${YELLOW}=====================================================" | indent + echo -e "${RESET}-----> $*" | indent + echo -e "${YELLOW}=====================================================${RESET}" | indent + } + +# Grab the current directory +function getCurrent() + { + showStep "getting current directory" + DIR="$( pwd )" + echo "DIR in getCurrent is: ${DIR}" + THIS_SCRIPT=`basename "$0"` + showStep "Running '${THIS_SCRIPT}'" + } +declare basePath='images' +declare negBase='faces94' +declare -a folders=('male' 'female') +declare posZip="${2}" +declare curl_cmd="curl -X POST -F \"${2}_positive_examples=@${2}.zip\"" +declare api_key="${1}" +declare url="https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classifiers?api_key=${api_key}&version=2016-05-20" +showStep "image folders are located here: ${basePath}/${negBase}" +for i in "${folders[@]}" +do + showStep "Processing folders in ${basePath}/${negBase}/${i}" + pushd "${basePath}/${negBase}/${i}" + declare -a currentSet=($(ls -d -- */)) + # echo "current path is ${PWD}" + # echo "${currentSet}" + popd + # echo "current path is ${PWD}" + for j in "${currentSet[@]}" + do + let len=${#j}-1 +# echo "Creating zip from images in ${basePath}/${negBase}/${i}/${j}" +# zip images/"${j:0:len}".zip "${basePath}/${negBase}/${i}/${j:0:len}"/*.jpg -q +# copy first image from each folder to ${i} + cp "${basePath}/${negBase}/${i}/${j:0:len}"/"${j:0:len}".1.jpg "${basePath}/${negBase}/${i}"/"${j:0:len}".1.jpg +# curl_cmd+=" -F \"${j:0:len}_positive_examples=@${j:0:len}.zip\"" + done + showStep "Creating zip from images in ${basePath}/${negBase}/${i}" + zip images/"${i}".zip "${basePath}/${negBase}/${i}"/*.jpg -q + rm ${basePath}/${negBase}/${i}/*.jpg + curl_cmd+=" -F \"${i}_positive_examples=@${i}.zip\"" +done + +curl_cmd+=" -F \"name=visualAuthenticate\" \"${url}\"" + +showStep " about to execute this command to create your classifier: \n $curl_cmd" +pushd "${basePath}" +declare vr_classifier_id=$(eval $curl_cmd | jq '.classifier_id') +# eval $curl_cmd +showStep "Save this classifier id ==>${RED}${vr_classifier_id}${RESET}<== to your env.json file" +showStep "You can check the status of your classifier by executing the following command, you're looking for a 'ready' state'\n${RED}curl -X GET \"https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classifiers/${vr_classifier_id}?api_key=${api_key}&version=2016-05-20\"${RESET}" +popd + +# curl -X GET "https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classifiers/dogs_1477088859?api_key=${api_key}&version=2016-05-20" +# curl -X GET "https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classifiers/visualAuthenticate_1048061842?api_key=a1107d9d670354018cf2d899ba8740c4855f466a&version=2016-05-20" diff --git a/Chapter09/readme.MD b/Chapter09/readme.MD new file mode 100644 index 00000000..4367664c --- /dev/null +++ b/Chapter09/readme.MD @@ -0,0 +1,260 @@ +# Chapter09, Working with Images. + +*This is a story rewrite from the original version* + +**Original Version** + +In the original version of this chapter, we used two services in Alchemy Visual Recognition. We craeted an image classifier and we also created collections of images. Since that time, the (experimental) service to find similar images has been deprecated and is no longer available. + +**Current Version** + +The focus in this new version will be visual recognition using faces - kind of like an authentication via your face. + +***Resources*** + + - the Watson Visual Recognition service + - as you have in the previous sessions, log in to bluemix and create the Visual Recognition service. + - go to the ```Manage``` tab and copy your credentials into your env.json file. + - save your updated env.json file. + - a video of your face - we'll separate that into still images using ffmpeg + - to take a video of your face, + - hold your phone so that you can see yourself on the screen and start recording + - move your phone left and right, turning your phone so that it continues to point directly at you + - come back to center and move up and down, again keeping the phone pointing directly at you + - finally, move your phone in a circle around your face one or two times + - stop the recording + - transfer the recorded video to your computer. + - create a series of images from your video + - you'll need the free ffmpeg utility to automatically extract still images from the video. Go to this web page and download a version appropriate for your operating system + - [ffmpeg Download Page](https://www.ffmpeg.org/download.html) + - follow the instructions on the download page to install ffmpeg + - copy the movie to the images folder in Chapter09 + - in your terminal window or git-bash shell, go to the images folder + - execute this command: + - ```ffmpeg -i "face.MOV" -vf scale=216:384 -r 1 output_%04d.png``` + - replacing ```faces.MOV``` with the name of the video file you just created + - and replacing 216:384 with an appropriate reduced aspect ratio. This ratio is correct for an iPhone7. The smaller number in the ratio needs to be in the 225-250 range. I used 216:384 because it was simple math to divide the original dimensions of my movie (1080 x 1920) by 5. While we don't have to reduce image size, it makes testing and uploads much faster. VR has a 10,000 image, 100Mb limit to a zip file, much larger than we'll need in this tutorial. + - this will create one image for every second in the video. Mine was 23 seconds long, so 23 images were created. + - compress the files into a zip file and name it something memorable + - We now need some images to use as negative comparisons in the classifier + - after doing a short google search for images, I found this site: + - [http://cswww.essex.ac.uk/mv/allfaces/faces94.html](http://cswww.essex.ac.uk/mv/allfaces/faces94.html) + - and downloaded the free 'faces94.zip' file + - If you use this zip file, then unzip it and copy the faces94 folder into the images folder in Chapter09 + - You should have the following folder structure: + ``` + Chapter09 + --controller + --Documentation + --HTML + --images + --faces94 + --male + --female + --malestaff + ``` + - a script has been included which will take the first image from each folder under "male" and each folder under "female" and create two zip files for use by the classifier + - you type ```./neg_mages.sh``` followed by two parameters, the first is your api-key for visual recognition, the second is the name of the zip file you created earlier in this process. + - the command is intended to be run from the ```Chapter09``` folder and expects your zip file to be in the ```Chapter09/images``` folder + - for example, my images are stored in a a file called ```me.zip```, so to invoke the command, I would type the following: + - ```./neg_images.sh my-api-key-goes-here me``` ... note that the 2nd parameter is ```me``` and not ```me.zip``` + - the script ends by creating a new classifier called visualAuthenticate. + - after the script has finished processing, it will print out a line like the following with the name of the newly created classifier + - ```Save this classifier id ==>"visualtest_1933636844"<== to your env.json file``` + - when you see the 'save this classifier id' message, copy the classifier id into your env.json file. When you're done, your file should look like this: + ```json + "visual_recognition": { + "url": "https://gateway-a.watsonplatform.net/visual-recognition/api", + "note": "It may take up to 5 minutes for this key to become active", + "api_key": "your-api-key-is-placed-here", + "classifier_id": "visualAuthenticate_xxxxxxxx", + }, + ``` + - the neg_images.sh script will also print out a copy of a curl command you can use to display the status of your newly created classifier + ``` + You can check the status of your classifier by executing the following command, you're looking for a 'ready' state' + curl -X GET "https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classifiers/"visualAuthenticate_xxxxxxxxxxxx"?api_key=your-api-key-will-be-automatically-inserted-here&version=2016-05-20" + ``` + +***Set up is complete, now, on to coding*** + +We worked with three files in the original version: + - controller/restapi/features/images.js + - HTML/CSS/pageStyles.css + - HTML/js/z2c-image.js + + Follow the original tutorial for changes to images.js and pageStyles.css, we will use those files in their original format. + + We have less work to do in z2c-image.js than before. + + functions: + ***initiateVR*** is called after authentication has succeeded. This function is unchanged from the original and looks like this: + ```javascript + /** + * initialize the visual recognition page. + */ +function initiateVR() +{ + c_res = $("#classifyResults"); + _url = $("#imageURL"); + _image = $("#image"); + console.log("initiateVR"); + // using the checkImageDroppable function in z2c-utilities.js, ensure that the browser supports drag and drop operation + b_Droppable = checkImageDroppable(); + if (b_Droppable) + { console.log("browser supports drag and drop: "+b_Droppable); + // initialize variables + droppedFiles= false; + $form = $('.image') + var $input = $form.find('.imageReceiver'); + var droppedFiles = false; + // the image receiver is inside an html
object + $form.on('submit', function(e) { + e.preventDefault(); + // the submit button was clicked, but no file was dropped or selected + if (droppedFiles == false) {c_res.append("

Error: please select a file, first."); return;} + else + // files have a max size of 2Mb + {if (droppedFiles[0].size > maxSize) {c_res.append("

Error: File size too large. Image must be smaller than 2MB."); return;} + else + // only jpeg and png files are supported .... well, it works with gif, too, just not as well + {if ((droppedFiles[0].type != "image/jpeg") && (droppedFiles[0].type != "image/png")) {c_res.append("

Error: Only jpeg and png files are supported

"); return;} + else + { + // everything is good. let's proceed + // display a busy icon + c_res.empty(); c_res.append("
"); + // get the image data + var ajaxData = new FormData(); + console.log("processing files: $input.attr('name'): "+ $input.attr('name')); + ajaxData.append( droppedFiles[0].name, droppedFiles[0] ); + // ajax is asynchronous javascript execution. Send the request to the server + // let the browser do other things + // then respond when the server returns + $.ajax({ + url: $form.attr('action'), + type: $form.attr('method'), + data: ajaxData, + dataType: 'json', + cache: false, + contentType: false, + processData: false, + // wait until everything comes back, then display the classification results + complete: function(data) { displayImageClassificationResults(c_res, data.responseText)}, + success: function(data) { }, + // oops, there was an error, display the error message + error: function(err) { console.log("error: "+err); displayObjectValues("error:", err); } + }); + } + } + } + }); + // don't do any default processing on drag and drop + _image.on('drag dragstart dragend dragover dragenter dragleave drop', + function(e) { e.preventDefault(); e.stopPropagation(); }); + // change how the drag target looks when an image has been dragged over the drop area + _image.on('dragover dragenter', function() { _image.addClass('dragover'); }); + // remove drag target highlighting when the mouse leaves the drag area + _image.on('dragleave dragend drop', function() { _image.removeClass('dragover'); }); + // do the following when the image is dragged in and dropped + _image.on('drop', function(e) { droppedFiles = e.originalEvent.dataTransfer.files; + console.log("dropped file name: "+droppedFiles[0].name); + // build a table to display image information + var fileSpecs = ""; + // check image size + var tooBig = (droppedFiles[0].size > maxSize) ? " ... File size too large" : ""; + // check image type + var imageType = ((droppedFiles[0].type == "image/jpeg") || (droppedFiles[0].type == "image/png")) ? "" : " ... Only jpeg and png files are supported"; + fileSpecs += ""; + fileSpecs += "
File Name"+droppedFiles[0].name+"
File Size"+droppedFiles[0].size+tooBig+"
File Type"+droppedFiles[0].type+imageType+"
"; + // clear the target + c_res.empty(); + // display the table + c_res.append(fileSpecs); + // display the image + var reader = new FileReader(); + reader.onload = function(e) { + var __image = '
' + _image.empty(); + _image.append(__image); } + reader.readAsDataURL(droppedFiles[0]); + }); + // update the image area css + _image.addClass("dd_upload"); + } + // sorry, but your browser does not support drag and drop. Time to finally do that upgrade? + else { console.log("browser does not support drag and drop: "+b_Droppable); } +} +``` + +***displayImageClassificationResults*** has a minor change to it. The original code follows, near the end of it you'll see the following line of code: +```javascript + _tbl += ''+_obj[_idx].class+''+_obj[_idx].score+'"'; +``` +we're going to remove the hyperlink `````` processing so that we just display the class name, so the line changes to the following: +```javascript + _tbl += ''+_obj[_idx].class+''+_obj[_idx].score+'"'; +``` + +===> Complete code <=== +```javascript +/** + * display the results of the image classification process + * @param {String} _target - the html element to receive the results + * @param {String} _data - the image information to display + */ +function displayImageClassificationResults(_target, _data) +{ + // empty the html target area + _target.empty(); + console.log("displayImageClassificationResults entered with: "+_data); + // turn the returned string back into a JSON object + var imageResults = JSON.parse(_data); + console.log("displayImageClassificationResults parsed results: ",imageResults); + + // create a display table + var _tbl = ""; + + var _image = imageResults.images[0].image; + // iterate through the classification results, displaying one table row for each result row + if (imageResults.images[0].classifiers.length === 0) + { _tbl += ""} + else + { + for (each in imageResults.images[0].classifiers[0].classes) + { + (function (_idx, _obj) { + var _disabled = (collections[_obj[_idx].class] == null) ? ", mic_disabled" : ""; + _tbl += '"'; + })(each, imageResults.images[0].classifiers[0].classes) + } + } + // close the table + _tbl += "
Image ClassProbability
No Results with higher than 50% probability
'+_obj[_idx].class+''+_obj[_idx].score+'
"; + // and append it to the target. + _target.append(_tbl); +} +``` + +***functions no longer needed*** + +The two functions ```findInCollection()``` and ```displayCollectionResults()``` are no longer required and are now removed from the tutorial. + +***Using your code*** + + +Now that you've completed your code updates, what will this program do? + + - start your app by typing ```npm start``` + - direct your browser to localhost:xxxx where xxxx is the port number displayed when you started the app + - log in + - drag an image onto the image window + - you'll see the image displayed in that window + - click on the ```classify an image``` button + - review the results + - you'll see either a message telling you that no results were returned. If that's the case, then the supplied image had a less than 50% match on any of the supplied classifier zip files. + - you'll see a probability listing with one or more rows. There are three possible classes which can be displayed, if you used the supplied script to build the classifier + - male - not you, but probably a male + - female - not you, but probably a female + - you - this will display the name of your zip file (hence the earlier recommendation to make the name memorable) + - you can find test images simply by doing a web search for face images, which allows you to use different images in your demonstration. \ No newline at end of file diff --git a/Chapter09/readme.pdf b/Chapter09/readme.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5459bf43cd3a9eb163b6ba8b675b30db089a8796 GIT binary patch literal 69032 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�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 RdT<070wH2&mr|A{`d_3N8&v=R literal 0 HcmV?d00001