terminal print met het classificatie resultaat
 
terminal print met het classificatie resultaat
zie voorbeeld 1

 

 

output afbeelding met het googlenet classificatie resultaat

output afbeelding met het googlenet classificatie resultaat
zie voorbeeld 2
 
 
 
 
output afbeelding met het resnet-18 classificatie resultaat
 
output afbeelding met het resnet-18 classificatie resultaat
zie voorbeeld 3
 

Classifying Images with ImageNet                        terug naar de inleiding

Dit project maakt gebruik van de software in de jetson-inference map. Het pad en de schets om afbeeldingen te classificeren:
 
jetson-inference/build/aarch64/bin/imagenet-console.py
 

imagenet-console.py accepteerd  3 argumenten

1) Het pad naar de input afbeelding met de naam van die afbeelding (afbeelding typen: jpg, png, tga en bmp)

    De input afbeelding is de te testen afbeelding. In de map image zitten 85 afbeeldingen 

2) optioneel Het pad naar de output afbeelding met de naam van die afbeelding (afbeelding typen: jpg, png, tga en bmp

    De output afbeelding is een copie van de input afbeelding met het classificatie resultaat

3) optioneel Een netwerk vlag --network die verwijst naar het classificatie model. Als default wordt googlenet gebruikt
 
Voorbeelden
 
1)  ./imagenet-console.py images/cat_2.jpg
       Met alleen de input afbeelding als argument.

       Het googlenet model wordt gebruikt en het classificatie resultaat wordt in de terminal geprint

2)    ./imagenet-console.py images/cat_2.jpg output_cat_1.jpg

        Nu wordt er ook in de map bin een afbeelding met het classificatie resultaat aangemaakt

3)    ./imagenet-console.py --network=resnet-18 images/cat_2.jpg output_cat_2.jpg
       Dezelfde afbeelding classificeren maar nu met resnet-18

 

 

import jetson.inference 
import jetson.utils 
 
import argparse 
import sys 
 
# parse the command line 
parser = argparse.ArgumentParser(description="Classify an image using an image recognition DNN.",  
                           formatter_class=argparse.RawTextHelpFormatter, epilog=jetson.inference.imageNet.Usage()) 
 
parser.add_argument("file_in", type=str, help="filename of the input image to process") 
parser.add_argument("file_out", type=str, default=None, nargs='?', help="filename of the output image to save") 
parser.add_argument("--network", type=str, default="googlenet", help="pre-trained model to load (see below for options)") 
 
try: 
    opt = parser.parse_known_args()[0] 
except: 
    print("") 
    parser.print_help() 
    sys.exit(0) 
 
# load an image (into shared CPU/GPU memory) 
img, width, height = jetson.utils.loadImageRGBA(opt.file_in) 
 
# load the recognition network 
net = jetson.inference.imageNet(opt.network, sys.argv) 
 
# classify the image 
class_idx, confidence = net.Classify(img, width, height) 
 
# find the object description 
class_desc = net.GetClassDesc(class_idx) 
 
# print out the result 
print("image is recognized as '{:s}' (class #{:d}) with {:f}% confidence\n".format(class_desc, class_idx, confidence * 100)) 
 
# print out timing info 
net.PrintProfilerTimes() 
 
# overlay the result on the image 
if opt.file_out is not None: 
    font = jetson.utils.cudaFont(size=jetson.utils.adaptFontSize(width))     
    font.OverlayText(img, width, height, "{:f}% {:s}".format(confidence * 100, class_desc), 10, 10, font.White, font.Gray40) 
    jetson.utils.cudaDeviceSynchronize() 
    jetson.utils.saveImageRGBA(opt.file_out, img, width, height)