Exemplo n.º 1
0
    def callback(self, data):
        try:
            from timeit import default_timer as timer
            start = timer()
            res = self.detect_object_service(data)
            end = timer()
            print('Finished detection. (%f [sec])' % (end - start, ))

            resdata = YoloRes()  #resdata type -> rescustom
            resdata.labels = str(res.labels)

            kariname = str(res.names)
            kariname = kariname.strip("[" "]")
            karilist = kariname.split(',')

            # add scripts
            kariscore = str(res.scores)
            scoreRemove = kariscore.strip(' ()')
            scorelist = scoreRemove.split(',')
            displayList = []

            for i in range(len(karilist)):
                displayData = karilist[i] + " | " + str(
                    round(float(scorelist[i]), 3))
                displayList.append(displayData)

# resdata.names=['','','','','']
# resdata.scores=str()

            i = 0
            for region in res.regions:
                resdata.x_offset[i] = int(region.x_offset)
                resdata.y_offset[i] = int(region.y_offset)
                resdata.width[i] = int(region.width)
                resdata.height[i] = int(region.height)
                resdata.names[i] = displayList[i]
                i = i + 1
            resdata.num = int(i)
            #print(type(resdata.names[0]))
            sys.stdout.flush()
        except cv_bridge.CvBridgeError as e:
            print(e)
            return

        cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8")
        util.visualize_result_onto(cv_image, res, self.label_format)

        try:
            self.image_pub.publish(self.bridge.cv2_to_imgmsg(cv_image, "bgr8"))
            self.YoloPub.publish(resdata)  #publich resdata

        except cv_bridge.CvBridgeError as e:
            print(e)
Exemplo n.º 2
0
    def callback(self, data):
        try:
            from timeit import default_timer as timer
            start = timer()
            res = self.detect_object_service(data)
            end = timer()
            #print('Finished detection. (%f [sec])' % (end - start, ))
            #print(res.labels)
            #print('names: %s' % (res.names,))
            #print('scores: %s' % (res.scores,))
            resdata=rescustom()
            resdata.labels=str(res.labels)
            resdata.names=str(res.names)
            resdata.scores=str(res.scores)
            i=0;
            for region in res.regions:
                
                resdata.x_offset[i]=int(region.x_offset)
                resdata.y_offset[i]=int(region.y_offset)
                resdata.width[i]=int(region.width)
                resdata.height[i]=int(region.height)
                #print(resdata.regions[i])
                i=i+1
                resdata.num=i
            #print(resdata.labels)
            #print(resdata.names)
            #print(resdata.scores)

            #self.publ.publish(pu)
            sys.stdout.flush()
        except cv_bridge.CvBridgeError as e:
            print(e)
            return

        cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8")
        util.visualize_result_onto(cv_image, res, self.label_format)
        
        try:
            self.image_pub.publish(
                self.bridge.cv2_to_imgmsg(cv_image, "bgr8")
            )
            self.publ.publish(resdata)
             
        except cv_bridge.CvBridgeError as e:
            print(e)
Exemplo n.º 3
0
    def callback(self, data):
        try:
            from timeit import default_timer as timer
            start = timer()
            res = self.detect_object_service(data)
            end = timer()
            print('Finished detection. (%f [sec])' % (end - start, ))
            sys.stdout.flush()
        except cv_bridge.CvBridgeError as e:
            print(e)
            return

        cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8")
        util.visualize_result_onto(cv_image, res, self.label_format)
        try:
            self.image_pub.publish(self.bridge.cv2_to_imgmsg(cv_image, "bgr8"))
        except cv_bridge.CvBridgeError as e:
            print(e)
Exemplo n.º 4
0
            for region in res.regions:
                print("  "
                      "{'x_offset': %d, 'y_offset': %d, "
                      "'width': %d, 'height': %d}" % (
                          region.x_offset, region.y_offset,
                          region.width, region.height))
            print('labels: %s' % (res.labels,))
            print('names: %s' % (res.names,))
            print('scores: %s' % (res.scores,))
        else:
            bboxes = []
            for region in res.regions:
                bboxes.append([
                    region.y_offset, region.x_offset,
                    region.y_offset + region.height - 1,
                    region.x_offset + region.width - 1
                ])
            bboxes = np.array(bboxes)
            labels = np.array(res.labels)
            scores = np.array(res.scores)
            names = np.array(res.names)
            util.visualize_result_onto(img, res)
            cv2.imshow(filename, img)
    if args.display:
        print('Press any key on an image window to finish the program.')
        while True:
            k = cv2.waitKey(1000)
            if k != -1:
                cv2.destroyAllWindows()
                break
Exemplo n.º 5
0
                "'width': %d, 'height': %d}" %
                (region.x_offset, region.y_offset, region.width,
                 region.height))
        print('labels: %s' % (res.labels, ))
        print('names: %s' % (res.names, ))
        print('scores: %s' % (res.scores, ))
    else:
        bboxes = []
        for region in res.regions:
            bboxes.append([
                region.y_offset, region.x_offset,
                region.y_offset + region.height - 1,
                region.x_offset + region.width - 1
            ])
        bboxes = np.array(bboxes)
        labels = np.array(res.labels)
        scores = np.array(res.scores)
        names = np.array(res.names)
        bridge = cv_bridge.CvBridge()
        cv_image = bridge.imgmsg_to_cv2(res.image, "bgr8")
        util.visualize_result_onto(cv_image, res, args.label_format)
        cv2.imshow(filename, cv_image)

    if args.display:
        print('Press any key on an image window to finish the program.')
        while True:
            k = cv2.waitKey(1000)
            if k != -1:
                cv2.destroyAllWindows()
                break