2017-08-19 1 views
2

Wie kann ich ein Bild in der Begrenzungsbox in Tensorflow zuschneiden? Ich benutze die Python-API.Bild in Begrenzungsrahmen in Tensorflow Objekterkennungs-API zuschneiden

Aus der Dokumentation,

tf.image.crop_to_bounding_box(image, offset_height, offset_width, target_height, target_width) 

Crops ein Bild auf einen Begrenzungsrahmen angegeben.

Dieses Op schneidet einen rechteckigen Teil aus dem Bild heraus. Die obere linke Ecke des zurückgegebenen Bildes befindet sich in Offset_Height, offset_width im Bild und die untere rechte Ecke in Offset_Height + Ziel_Höhe, Offset_Breite + Ziel_Breite.

kann ich die Koordinaten eines Begrenzungsrahmens in normalisierten Koordinaten wie, erhalten

ymin = boxes[0,i,0] 
    xmin = boxes[0,i,1] 
    ymax = boxes[0,i,2] 
    xmax = boxes[0,i,3] 

und wandeln diese in absolute Koordinaten,

(xminn, xmaxx, yminn, ymaxx) = (xmin * im_width, xmax * im_width, ymin * im_height, ymax * im_height) 

aber ich herausfinden kann nicht wie diese verwenden Koordinaten in der crop_to_bounding_box Funktion.

+0

könnten Sie diesen Artikel mögen :) https://blog.twitter.com/engineering/en_us/topics/infrastructure/2018/Smart-Auto-Cropping-of-Images.html?utm_content=buffer611dd&utm_medium=social&utm_source = linkedin.com & utm_campaign = Puffer –

Antwort

3

Da wir x als horizontal und y als vertikal betrachten, würde das Bild mit der angegebenen Box beschnitten werden.

cropped_image = tf.image.crop_to_bounding_box(image, yminn, xminn, 
             ymaxx - yminn, xmaxx - xminn) 
+0

Danke! Das hat perfekt funktioniert! – Ahmad

+0

@IshantMrinal: Weißt du zufällig auch, wie wir das Innere der Bounding Box mit einer Farbe füllen können? Angenommen, ich möchte einige Teile im Bild zensieren. Ich bemerkte hier: https://github.com/tensorflow/models/blob/master/research/object_detection/utils/visualization_utils.py#L169 , dass es PIL draw rectangle verwendet, und es initialisiert auch das Füllargument, jedoch nicht fülle das Rechteck mit einer beliebigen Farbe! Können Sie mir in dieser Hinsicht helfen? – Breeze