张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件,👉戳此立抢👈

如何用Python识别停车位?

2019-01-29 10:30 次阅读
【导语】今天这篇文章的选题非常贴近生活。营长生活在北京,深知开车出门最怕的就是堵车和找不到停车位。记得冬至那个周末,几个小伙伴滑雪回来找了一家饺子馆吃饺子,结果七拐八拐,好不容易才找到一个停车位。看到这篇技术文章,马上就想要学习一下,分享给大家,希望有助于解决大家这个痛点问题,春节出行没准就可以用得上了。 作者通过相机结合深度学习算法,基于 Python 语言建立一个高精度的停车位的通知系统,每当有新停车位时就会发短信提醒我。听起来好像很复杂,真的方便实用吗?但实际上所使用的工具都是现成的,只要将这些工具进行有机的组合,就可以快速、简便的实现。 下面我们就开始学习整个工程流程: 分解问题 解决一个复杂的问题,首先第一步是要把问题分解成几个简单子任务。然后,针对每个子任务,运用机器学习中不同的方法来分别解决每个问题。最后把这些子任务贯穿起来,形成整套解决方案。 下面是检测开放停车位的流程图: 输入:普通摄像头采集的视频流 有了输入数据后,接下来我们需要知道图像的哪一部分是停车位,而且停车位是没有人使用的。 第一步:检测视频帧中所有可能的停车位。 第二步:检测每一帧视频中的所有车辆。可以跟踪每辆车从一帧到另一帧的运动。 第三步:确定目前有哪些停车位被占用,哪些没有被占用。这需要结合第一步和第二步的结果。 最后一步:当停车位变成可用时,系统发出通知。 其实可以使用多种不同的方法来完成这些步骤。不同的方法将具有不同的优势和缺点。接下来具体来看: 一、探测停车位 相机视图如下图所示: 需要扫描图像,并得到有效停车区域,如下面黄色标识出来的位置: 一个懒办法是程序写死每个停车场的位置,而不是自动检测停车场。但是如果移动摄像机,探测不同街道上的停车位,就必须再次手动定位停车位置。这样看来这个方法一点都不好,还是要采用自动检测停车位的方法。 其中一个想法是识别停车计时器并假设每个计时器旁边都有一个停车位: 但是这种方法也有一些问题。首先,并不是每个停车位有一个停车计时器,而且我们最想先找到免费停车位。第二,知道停车计时器的位置还不能告诉我们确切的停车位置点。 另一个想法是搭建一个目标检测模型,找到在马路上画的停车位记号,就像下图标识出来的: 这种方法也有两个难点。首先,从远处看,停车位线的标志很小,很难看到,增加了识别难度;其次,道路上还有各种交通标记线,比如车道线、人行道斑马线,这也给识别增加了难度。 或许还可以换个思维方式,回避一些技术挑战。重新思考停车位到底是什么呢?无非是一个车需要停放一定时间的位置。所以我们可能根本不需要检测停车位,只要检测出长时间不动的车,并假设它们的位置就是停车位。 所以,如果我们能检测出汽车,并找出哪些车在视频帧之间没有移动,就可以推断停车位的位置。 二、在图像中检测汽车 在视频中检测车辆是一个经典的目标检测问题。有很多机器学习方法可以实现。下面列出了一些最常见的目标检测算法: 1、通过 HOG(梯度方向直方图)目标检测器检测出所有的车。这种非深度学习方法运行起来相对较快,但它无法处理汽车在不同方向上的旋转问题。 2、通过 CNN(卷积神经网络)目标检测器检测所有的车。这种方法是准确的,但是效率比较低,因为同一张图像必须扫描多次,以检测到所有的汽车。虽然它可以很容易地对不同旋转方向的汽车定向,但是比 HOG 方法需要更多的训练数据。 3、使用新的深度学习方法,如 Mask R-CNN,Faster R-CNN 或者 YOLO 算法,兼容准确性和运行效率,大大加快了检测过程。一旦有大量的训练数据,在 GPU 上运行也很快。 通常来说,我们希望选择最简单可行的算法和最少的训练数据,而不是一定要用那些流行的新的算法。基于目前这种特殊场景下,Mask R- CNN 是一个不错的选择。 Mask R-CNN 架构就是在整个图像中检测对象,不使用滑动窗口的方式,所以运行速度很快。有了 GPU 处理器,我们能够每秒处理多帧的高分辨率视频,从中检测到车辆。 Mask R-CNN 为我们提供了很多检测到的信息。大多数目标检测算法只返回每个对象的边框。但是 Mask R-CNN 不仅会给我们每个对象的位置,也会给出一个对象的轮廓,像这样: 为了训练 Mask R-CNN 模型,我们需要很多这类检测物体的图片。可以花几天的时间出去拍摄照片,不过已经存在一些汽车图像的公共数据集。有一个很流行的数据集叫做COCO(Common Objects In Context的缩写),它里面已经有超过 12000 张汽车的图片。下面就是一个 COCO 数据集中的图像: 这些数据可以很好的训练 Mask R-CNN 模型,而且已经有很多人使用过 COCO数据集,并分享了训练的结果。所以我们可以直接使用一些训练好的模型,在本项目中使用 Matterport 的开源模型。 不仅能识别车辆,还能识别到交通灯和人。有趣的是,它把其中一棵树识别成“potted plant”。对于图像中检测到的每个对象,我们从 MaskR-CNN 模型得出以下 4 点: (1)不同对象的类别,COCO 模型可以识别出 80 种不同的物体,比如小轿车和卡车。 (2)目标识别的置信度,数字越大,说明模型识别对象的精准度越高。 (3)图像中物体的边界框,给定了 X/Y 像素的位置。 (4)位图“mask”说明了边框内哪些像素是对象的一部分,哪些不是。使用“mask”数据,我们也可以算出物体的轮廓。 下面是 Python 代码,使用 Matterport 的 Mask R-CNN 的训练模型和 OpenCV 来检测汽车边框: 1import os  2import numpy as np  3import cv2  4import mrcnn.config  5import mrcnn.utils  6from mrcnn.model import MaskRCNN  7from pathlib import Path  8  9 10# Configuration that will be used by the Mask-RCNN library 11class MaskRCNNConfig(mrcnn.config.Config): 12    NAME = "coco_pretrained_model_config" 13    IMAGES_PER_GPU = 1 14    GPU_COUNT = 1 15    NUM_CLASSES = 1 + 80  # COCO dataset has 80 classes + one background class 16    DETECTION_MIN_CONFIDENCE = 0.6 17 18 19# Filter a list of Mask R-CNN detection results to get only the detected cars / trucks 20def get_car_boxes(boxes, class_ids): 21    car_boxes = [] 22 23    for i, box in enumerate(boxes): 24        # If the detected object isn't a car / truck, skip it 25        if class_ids[i] in [3, 8, 6]: 26            car_boxes.append(box) 27 28    return np.array(car_boxes) 29 30 31# Root directory of the project 32ROOT_DIR = Path(".") 33 34# Directory to save logs and trained model 35MODEL_DIR = os.path.join(ROOT_DIR, "logs") 36 37# Local path to trained weights file 38COCO_MODEL_PATH = os.path.join(ROOT_DIR, "mask_rcnn_coco.h5") 39 40# Download COCO trained weights from Releases if needed 41if not os.path.exists(COCO_MODEL_PATH): 42    mrcnn.utils.download_trained_weights(COCO_MODEL_PATH) 43 44# Directory of images to run detection on 45IMAGE_DIR = os.path.join(ROOT_DIR, "images") 46 47# Video file or camera to process - set this to 0 to use your webcam instead of a video file 48VIDEO_SOURCE = "test_images/parking.mp4" 49 50# Create a Mask-RCNN model in inference mode 51model = MaskRCNN(mode="inference", model_dir=MODEL_DIR, config=MaskRCNNConfig()) 52 53# Load pre-trained model 54model.load_weights(COCO_MODEL_PATH, by_name=True) 55 56# Location of parking spaces 57parked_car_boxes = None 58 59# Load the video file we want to run detection on 60video_capture = cv2.VideoCapture(VIDEO_SOURCE) 61 62# Loop over each frame of video 63while video_capture.isOpened(): 64    success, frame = video_capture.read() 65    if not success: 66        break 67 68    # Convert the image from BGR color (which OpenCV uses) to RGB color 69    rgb_image = frame[:, :, ::-1] 70 71    # Run the image through the Mask R-CNN model to get results. 72    results = model.detect([rgb_image], verbose=0) 73 74    # Mask R-CNN assumes we are running detection on multiple images. 75    # We only passed in one image to detect, so only grab the first result. 76    r = results[0] 77 78    # The r variable will now have the results of detection: 79    # - r['rois'] are the bounding box of each detected object 80    # - r['class_ids'] are the class id (type) of each detected object 81    # - r['scores'] are the confidence scores for each detection 82    # - r['masks'] are the object masks for each detected object (which gives you the object outline) 83 84    # Filter the results to only grab the car / truck bounding boxes 85    car_boxes = get_car_boxes(r['rois'], r['class_ids']) 86 87    print("Cars found in frame of video:") 88 89    # Draw each box on the frame 90    for box in car_boxes: 91        print("Car: ", box) 92 93        y1, x1, y2, x2 = box 94 95        # Draw the box 96        cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 1) 97 98    # Show the frame of video on the screen 99    cv2.imshow('Video', frame)100101    # Hit 'q' to quit102    if cv2.waitKey(1) & 0xFF == ord('q'):103        break104105# Clean up everything when finished106video_capture.release()107cv2.destroyAllWindows() 运行该脚本后,将会看到在图像中识别到的汽车和边框: 同时会得到检测的每辆车的像素坐标: 这样我们已经成功地在图像中检测到了汽车。接下来到了下一个步骤。 三、探测空车位 知道图像中每辆车的像素位置后,通过观察连续多帧视频,可以很容易地算出哪帧里汽车没有移动。但我们如何检测到汽车何时离开停车位?经观察,图像中汽车的边框部分有所重叠: 如果假设每个边界框代表一个停车场空间,这个区域即使有车开走了,但是仍可能被另外汽车部分占据。因此我们需要一种方法来测量重叠,检查出“大部分为空”的框。我们使用的度量方法称为 Intersection Over Union(IoU)。通过计算两个物体重叠的像素量,然后除以两个物体所覆盖的像素: 有了这个值,接下来就可以很容易确定一辆车是否在停车位。如果 IoU 测量值低,比如 0.15,表示汽车并没有占据大部分的停车位空间。但是如果测量值很高,比如 0.6,就表示汽车占据了大部分的停车位,因此可以确定停车位已被占用。 IoU 是计算机视觉中常用的一种测量方法,提供了现成的代码。Matterport 的Mask R-CNN 库可以直接调用这个函数 mrcnn.utils.compute_overlaps()。假设我们有一个表示停车位边界框的列表,要检识别到的车辆是否在这些边界内框很简单,只需添加一两行代码: 1    # Filter the results to only grab the car / truck bounding boxes2    car_boxes = get_car_boxes(r['rois'], r['class_ids'])34    # See how much cars overlap with the known parking spaces5    overlaps = mrcnn.utils.compute_overlaps(car_boxes, parking_areas)67    print(overlaps) 结果显示为: 在二维数组中,每一行表示一个停车位边界框。同样的,每一列表示停车场被汽车所覆盖的程度。1.0 分意味着汽车完全占据了,而 0.02 这样的低分数,意味着有重叠区域,但不会占据大部分空间。 要找到无人使用的停车位,只需要计算出这个数组。如果所有的数都是 0 或者很小,也就表示空间没有被占用,因此一定是空停车位。 尽管 Mask R-CNN 非常精确,但目标检测并不能做到完美。有时也会在一段视频中漏掉一两辆车。所以在定位到一个空车位时,还应该检测在一段时间内都是空的,比如 5或10帧连续视频。这也可以避免视频本身出现故障而造成误检。一旦看到几个连续视频中都有空车位,马上发送提醒通知! 四、发送消息 最后一步是发送 SMS 提醒消息。利用 Twilio 通过 Python 发送 SMS 消息非常简单,基本上几行代码就可以实现。当然,Twilio 只是这个项目中用到的方法,你也可以用其他方式实现。 要使用 Twilio,先要注册一个试用帐户,创建一个 Twilio 电话号码并获取您的帐户凭证。然后,您需要安装 Twilio Python 客户端库: 下面是发送 SMS 消息的 Python 代码 (需用自己的帐户信息替换这些值): 1from twilio.rest import Client 2 3# Twilio account details 4twilio_account_sid = 'Your Twilio SID here' 5twilio_auth_token = 'Your Twilio Auth Token here' 6twilio_source_phone_number = 'Your Twilio phone number here' 7 8# Create a Twilio client object instance 9client = Client(twilio_account_sid, twilio_auth_token)1011# Send an SMS12message = client.messages.create(13    body="This is my SMS message!",14    from_=twilio_source_phone_number,15    to="Destination phone number here"16) 在添加 SMS 发送功能时要注意,不要连续发送已经识别过的空车位信息。可以用一个 flag 来跟踪已经发过的短信,除非是设定一段时间后再次提醒或是检测到新的空车位。 五、把所有流程串在一起 现在将每个步骤集成一个Python脚本。下面是完整代码,要运行这段代码,需要安装Python 3.6+,Matterport 的 Mask R-CNN 和 OpenCV: 1import os  2import numpy as np  3import cv2  4import mrcnn.config  5import mrcnn.utils  6from mrcnn.model import MaskRCNN  7from pathlib import Path  8from twilio.rest import Client  9 10 11# Configuration that will be used by the Mask-RCNN library 12class MaskRCNNConfig(mrcnn.config.Config): 13    NAME = "coco_pretrained_model_config" 14    IMAGES_PER_GPU = 1 15    GPU_COUNT = 1 16    NUM_CLASSES = 1 + 80  # COCO dataset has 80 classes + one background class 17    DETECTION_MIN_CONFIDENCE = 0.6 18 19 20# Filter a list of Mask R-CNN detection results to get only the detected cars / trucks 21def get_car_boxes(boxes, class_ids): 22    car_boxes = [] 23 24    for i, box in enumerate(boxes): 25        # If the detected object isn't a car / truck, skip it 26        if class_ids[i] in [3, 8, 6]: 27            car_boxes.append(box) 28 29    return np.array(car_boxes) 30 31 32# Twilio config 33twilio_account_sid = 'YOUR_TWILIO_SID' 34twilio_auth_token = 'YOUR_TWILIO_AUTH_TOKEN' 35twilio_phone_number = 'YOUR_TWILIO_SOURCE_PHONE_NUMBER' 36destination_phone_number = 'THE_PHONE_NUMBER_TO_TEXT' 37client = Client(twilio_account_sid, twilio_auth_token) 38 39 40# Root directory of the project 41ROOT_DIR = Path(".") 42 43# Directory to save logs and trained model 44MODEL_DIR = os.path.join(ROOT_DIR, "logs") 45 46# Local path to trained weights file 47COCO_MODEL_PATH = os.path.join(ROOT_DIR, "mask_rcnn_coco.h5") 48 49# Download COCO trained weights from Releases if needed 50if not os.path.exists(COCO_MODEL_PATH): 51    mrcnn.utils.download_trained_weights(COCO_MODEL_PATH) 52 53# Directory of images to run detection on 54IMAGE_DIR = os.path.join(ROOT_DIR, "images") 55 56# Video file or camera to process - set this to 0 to use your webcam instead of a video file 57VIDEO_SOURCE = "test_images/parking.mp4" 58 59# Create a Mask-RCNN model in inference mode 60model = MaskRCNN(mode="inference", model_dir=MODEL_DIR, config=MaskRCNNConfig()) 61 62# Load pre-trained model 63model.load_weights(COCO_MODEL_PATH, by_name=True) 64 65# Location of parking spaces 66parked_car_boxes = None 67 68# Load the video file we want to run detection on 69video_capture = cv2.VideoCapture(VIDEO_SOURCE) 70 71# How many frames of video we've seen in a row with a parking space open 72free_space_frames = 0 73 74# Have we sent an SMS alert yet? 75sms_sent = False 76 77# Loop over each frame of video 78while video_capture.isOpened(): 79    success, frame = video_capture.read() 80    if not success: 81        break 82 83    # Convert the image from BGR color (which OpenCV uses) to RGB color 84    rgb_image = frame[:, :, ::-1] 85 86    # Run the image through the Mask R-CNN model to get results. 87    results = model.detect([rgb_image], verbose=0) 88 89    # Mask R-CNN assumes we are running detection on multiple images. 90    # We only passed in one image to detect, so only grab the first result. 91    r = results[0] 92 93    # The r variable will now have the results of detection: 94    # - r['rois'] are the bounding box of each detected object 95    # - r['class_ids'] are the class id (type) of each detected object 96    # - r['scores'] are the confidence scores for each detection 97    # - r['masks'] are the object masks for each detected object (which gives you the object outline) 98 99    if parked_car_boxes is None:100        # This is the first frame of video - assume all the cars detected are in parking spaces.101        # Save the location of each car as a parking space box and go to the next frame of video.102        parked_car_boxes = get_car_boxes(r['rois'], r['class_ids'])103    else:104        # We already know where the parking spaces are. Check if any are currently unoccupied.105106        # Get where cars are currently located in the frame107        car_boxes = get_car_boxes(r['rois'], r['class_ids'])108109        # See how much those cars overlap with the known parking spaces110        overlaps = mrcnn.utils.compute_overlaps(parked_car_boxes, car_boxes)111112        # Assume no spaces are free until we find one that is free113        free_space = False114115        # Loop through each known parking space box116        for parking_area, overlap_areas in zip(parked_car_boxes, overlaps):117118            # For this parking space, find the max amount it was covered by any119            # car that was detected in our image (doesn't really matter which car)120            max_IoU_overlap = np.max(overlap_areas)121122            # Get the top-left and bottom-right coordinates of the parking area123            y1, x1, y2, x2 = parking_area124125            # Check if the parking space is occupied by seeing if any car overlaps126            # it by more than 0.15 using IoU127            if max_IoU_overlap < 0.15:128                # Parking space not occupied! Draw a green box around it129                cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 3)130                # Flag that we have seen at least one open space131                free_space = True132            else:133                # Parking space is still occupied - draw a red box around it134                cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 0, 255), 1)135136            # Write the IoU measurement inside the box137            font = cv2.FONT_HERSHEY_DUPLEX138            cv2.putText(frame, f"{max_IoU_overlap:0.2}", (x1 + 6, y2 - 6), font, 0.3, (255, 255, 255))139140        # If at least one space was free, start counting frames141        # This is so we don't alert based on one frame of a spot being open.142        # This helps prevent the script triggered on one bad detection.143        if free_space:144            free_space_frames += 1145        else:146            # If no spots are free, reset the count147            free_space_frames = 0148149        # If a space has been free for several frames, we are pretty sure it is really free!150        if free_space_frames > 10:151            # Write SPACE AVAILABLE!! at the top of the screen152            font = cv2.FONT_HERSHEY_DUPLEX153            cv2.putText(frame, f"SPACE AVAILABLE!", (10, 150), font, 3.0, (0, 255, 0), 2, cv2.FILLED)154155            # If we haven't sent an SMS yet, sent it!156            if not sms_sent:157                print("SENDING SMS!!!")158                message = client.messages.create(159                    body="Parking space open - go go go!",160                    from_=twilio_phone_number,161                    to=destination_phone_number162                )163                sms_sent = True164165        # Show the frame of video on the screen166        cv2.imshow('Video', frame)167168    # Hit 'q' to quit169    if cv2.waitKey(1) & 0xFF == ord('q'):170        break171172# Clean up everything when finished173video_capture.release()174cv2.destroyAllWindows() 这段代码写的比较简洁,实现了基本的功能。大家也可以试着修改代码以适应不同的场景。仅仅更改一下模型参数,出现的效果就可能完全不同,在不同应用中尽情发挥想象力!
原文标题:春节停车难?用Python找空车位 文章出处:【微信号:rgznai100,微信公众号:AI科技大本营】欢迎添加关注!文章转载请注明出处。
收藏 人收藏
分享:

评论

相关推荐

第一届中国AI与机器学习研讨会

活动内容  人工智能技术将在未来对传统产业产生重大颠覆性影响,人工智能将在各行各业为创新设计带来新的动力,它也将催生新的
发表于 03-29 00:00 62次 阅读
第一届中国AI与机器学习研讨会

微软亚洲研究院创研论坛CVPR 2019论文分享会在清华大学圆满落幕

实际上数据还是非常关键的,因为机器学习肯定要从具体的数据中学习。现在主流的、有影响力的数据集大多是国....
的头像 新智元 发表于 04-19 11:55 59次 阅读
微软亚洲研究院创研论坛CVPR 2019论文分享会在清华大学圆满落幕

哈佛学生写的Python模块,进入Github飙升榜TOP 3,超过1000星

VLBI的测量精度可以达到百分之几角秒、千分之几角秒甚至更高。对于人造天体,如人造地球卫星、绕月卫星....
的头像 新智元 发表于 04-19 11:31 31次 阅读
哈佛学生写的Python模块,进入Github飙升榜TOP 3,超过1000星

Stack Overflow近日发布了2019年度开发者调查报告

连续 7 年,JavaScript 都位列最受欢迎的编程语言榜首,但值得关注的是,Python 的排....
的头像 新智元 发表于 04-19 11:03 47次 阅读
Stack Overflow近日发布了2019年度开发者调查报告

深度学习真正可以实现什么,与经典计算机视觉的区别是什么?

看起来他正在用一些随机看的过滤器对每个图像进行卷积,然后使用一些非常奇怪的逻辑,许多“if then....
的头像 新智元 发表于 04-19 10:46 53次 阅读
深度学习真正可以实现什么,与经典计算机视觉的区别是什么?

计算机科学研讨会的学生用机器学习预测了权力的游戏主要人物的发展

在当时的研讨会上,近40个学生完成了包括数据库和API搭建、数据分析、网站设计和搭建、绘制地图、以及....
的头像 新智元 发表于 04-19 10:38 50次 阅读
计算机科学研讨会的学生用机器学习预测了权力的游戏主要人物的发展

周志华等人新书:《演化学习:理论和算法的进展》正式上线!

《Evolutionary Learning: Advances in Theories and A....
的头像 新智元 发表于 04-19 10:16 69次 阅读
周志华等人新书:《演化学习:理论和算法的进展》正式上线!

OpenAI Five是如何训练的、为什么选择打Dota以及AI在打Dota的时候在想什么?

总决赛让OpenAI的科学家可以回答一个重要的研究问题:OpenAI Five在多大程度、以何种方式....
的头像 新智元 发表于 04-19 09:29 51次 阅读
OpenAI Five是如何训练的、为什么选择打Dota以及AI在打Dota的时候在想什么?

介绍七本在注重打好数据科学的数学基础上的技术读物

如果说要列一份关于数学的书单,这本书是绕不过去的。本书单中排名第一的就是俄罗斯著名数学家Vladim....
的头像 新智元 发表于 04-19 08:56 57次 阅读
介绍七本在注重打好数据科学的数学基础上的技术读物

PAKDD 2019 AutoML挑战赛结果出炉:国内团队DeepBlueAI斩获第一名

如下图所示,研究团队实现了一个Lifelong AutoML 框架,包括自动特征工程和自动快速特征选....
的头像 新智元 发表于 04-19 08:52 68次 阅读
PAKDD 2019 AutoML挑战赛结果出炉:国内团队DeepBlueAI斩获第一名

Python爬虫工程师面试时的常见问题

一般面试官的第一个问题八成都是问一下以前做过的项目,所以最好准备两个自己最近写的有些技术
的头像 工程师人生 发表于 04-18 15:36 82次 阅读
Python爬虫工程师面试时的常见问题

源码python文件解析

21小时上手深度学习3-Neural Song
发表于 04-18 15:34 10次 阅读
源码python文件解析

如何利用Python对Ginkgo USB- CAN进行发送和接收数据

Python版本:硬件版本3.5.3 两套Ginkgo USB-CAN 接口:VTG203B 硬件连接: ITEM1    ITEM2 ...
发表于 04-18 12:04 112次 阅读
如何利用Python对Ginkgo USB- CAN进行发送和接收数据

充分利用人工智能,实现更为高效的下一代数据存储

数据生成的速度远超人们的想象。在以前,人是数据产生的主要来源;而现在,图像设备、传感器、无人机、互联....
发表于 04-17 17:50 143次 阅读
充分利用人工智能,实现更为高效的下一代数据存储

华为宣布将FusionServer产品全线升级到FusionServer Pro智能服务器

从2017年公开发布基于赛灵思FPGA的华为高性能加速服务器硬件平台开始,赛灵思和华为强强联手,充分....
的头像 FPGA开发圈 发表于 04-17 17:43 841次 阅读
华为宣布将FusionServer产品全线升级到FusionServer Pro智能服务器

一文讲述Quadro RTX 5000带来的性能提升

NVLink技术取代了SLI技术,可以配合Quadro NVLink 2-Slot或者3-Slot使....
的头像 英伟达NVIDIA企业解决方案 发表于 04-17 16:50 256次 阅读
一文讲述Quadro RTX 5000带来的性能提升

回顾2019GTC大会上中国初创企业的最新技术和创新展示方案

智擎信息携“智策”深度学习端计算产品和工业数据自动化分析平台登陆NVIDIA GTC大会,将超过10....
的头像 英伟达NVIDIA企业解决方案 发表于 04-17 16:48 424次 阅读
回顾2019GTC大会上中国初创企业的最新技术和创新展示方案

神经网络的技术为什么伟大, 又是什么让它们这么多年才姗姗走来?

我们把生物神经元进行数学抽象, 就得到人工神经元。如何抽取它的灵魂? 简单的说, 每一个神经元扮演的....
的头像 人工智能学家 发表于 04-17 10:55 278次 阅读
神经网络的技术为什么伟大, 又是什么让它们这么多年才姗姗走来?

自然语言基础技术之命名实体识别相对全面的介绍

早期的命名实体识别方法基本都是基于规则的。之后由于基于大规模的语料库的统计方法在自然语言处理各个方面....
的头像 人工智能头条 发表于 04-17 10:12 602次 阅读
自然语言基础技术之命名实体识别相对全面的介绍

微软:我们正处于人工智能的转折点,人工智能理应受到人类道德的约束和保护

IBM的研究员弗朗西斯卡·罗西(Francesca Rossi)举了一个例子:当你要使用机器人去陪伴....
的头像 重庆人工智能 发表于 04-17 09:45 354次 阅读
微软:我们正处于人工智能的转折点,人工智能理应受到人类道德的约束和保护

解析DARTS:海量数据训练和新样本特征的综合

研究人员首次将深度学习与贝叶斯假设检验结合,利用深度学习强化RNA可变剪接分析的准确性。
的头像 人工智能学家 发表于 04-17 09:11 262次 阅读
解析DARTS:海量数据训练和新样本特征的综合

我们应该跳出框架的桎梏 往更广泛的人工智能领域寻找价值

最近几年深度学习的流行,大家一般认为是从2012年AlexNet在图像识别领域的成功作为一个里程碑。....
发表于 04-16 17:40 74次 阅读
我们应该跳出框架的桎梏 往更广泛的人工智能领域寻找价值

无人驾驶汽车可以使用机器学习算法“飙车”

为了训练自动驾驶系统不失控,研究人员在北极圈附近结冰的赛道上进行了20多万份运动样本的测试。
的头像 人工智能 发表于 04-16 16:35 236次 阅读
无人驾驶汽车可以使用机器学习算法“飙车”

在人工智能热潮中,中国面临本土人才的短缺

日媒称,中国的35所大学将开设人工智能专业,培养对自动驾驶等技术至关重要的人才。
的头像 人工智能 发表于 04-16 16:32 313次 阅读
在人工智能热潮中,中国面临本土人才的短缺

IBM经典教程中的例子——在进行网页检索时通过多线程进行加速

这里多扯两句: multiprocessing.dummy? mltiprocessing 库的线程....
的头像 马哥Linux运维 发表于 04-16 12:57 168次 阅读
IBM经典教程中的例子——在进行网页检索时通过多线程进行加速

Python爬虫爬取美剧网站

后来发现,其电视剧链接都是在文章里面,然后文章url后面有个数字编号,就像这样的http://cn1....
的头像 马哥Linux运维 发表于 04-16 12:52 175次 阅读
Python爬虫爬取美剧网站

一听说是黑盒系统就敬而远之是否是最好的做法?

黑箱系统给出的答案无法完全令人信服的事情并不只发生在科学家和工程师身上。2018 年提出的「欧盟一般....
的头像 人工智能 发表于 04-16 10:30 169次 阅读
一听说是黑盒系统就敬而远之是否是最好的做法?

第一本由机器学习生成的书籍——《锂离子电池:机器生成的当前研究摘要》

谁是机器生成内容的创始人?算法的开发人员可以被视为作者吗?或者是从初始输入开始的人(例如“锂离子电池....
的头像 人工智能 发表于 04-16 10:27 181次 阅读
第一本由机器学习生成的书籍——《锂离子电池:机器生成的当前研究摘要》

学术出版商 Springer Nature 出版了第一本由 AI作家创作的书籍

学术出版商 Springer Nature 出版了第一本由机器学习生成的书籍——《锂离子电池:机器生....
的头像 人工智能 发表于 04-16 10:20 164次 阅读
学术出版商 Springer Nature 出版了第一本由 AI作家创作的书籍

Zillow提供的100万美元机器学习房价预测大赛奖金会花落谁家?

2017年,约有4 000个小组参与了Zillow推出的第一轮房屋估价大赛。
的头像 IEEE电气电子工程师学会 发表于 04-15 17:18 615次 阅读
Zillow提供的100万美元机器学习房价预测大赛奖金会花落谁家?

谷歌发布了一系列针对解决企业痛点的产品

谷歌表示,它们对语音模型进行了改进,“让客户能更容易与虚拟代理进行对话”。此外,8×8、Avaya、....
的头像 人工智能 发表于 04-15 12:25 385次 阅读
谷歌发布了一系列针对解决企业痛点的产品

人工智能机器学习所做的自动化决策是否客观?

据科技媒体The Verge报道,此项法案主要针对的是在数据领域获得大量个人信息的科技巨头们。年收入....
的头像 人工智能 发表于 04-15 12:22 380次 阅读
人工智能机器学习所做的自动化决策是否客观?

基于HTTP间谍抓包插件分析有道翻译反爬机制

python实战:利用chrome抓包插件HTTP间谍分析有道翻译反爬机制...
发表于 04-15 11:41 19次 阅读
基于HTTP间谍抓包插件分析有道翻译反爬机制

最先进的双足机器人能够以相对较高的速度行走和跑步

无独有偶,慕尼黑工业大学机械工程系的研究人员们正在研究构造一种能够快速、类似人类自主行走的机器人。他....
的头像 机器人大讲堂 发表于 04-15 09:10 334次 阅读
最先进的双足机器人能够以相对较高的速度行走和跑步

利用代码和机器学习技术实现健康减肥,你听说过吗?

去年底有个沉寂了快两年的减肥贴在 Reddit 上又火了起来,什么呢?
的头像 机器人大讲堂 发表于 04-15 09:05 267次 阅读
利用代码和机器学习技术实现健康减肥,你听说过吗?

基于深树的软件缺陷预测模型的详细资料说明

缺陷在软件系统中很常见,可能会给软件用户带来各种各样的问题。为了快速预测大型代码库中最可能出现的缺陷....
发表于 04-15 08:00 24次 阅读
基于深树的软件缺陷预测模型的详细资料说明

苏州市智能网联汽车首批路测牌照发放

Momenta当选第一届轮值理事长单位,奇瑞新能源汽车技术有限公司、上海淞泓智能汽车科技有限公司、苏....
的头像 机器人技术与应用 发表于 04-13 11:20 686次 阅读
苏州市智能网联汽车首批路测牌照发放

谷歌发布了一系列人工智能工具

目前处于测试阶段的自动视频智能(AutoML Video Intelligence)也是一个新功能,....
的头像 人工智能 发表于 04-13 11:14 865次 阅读
谷歌发布了一系列人工智能工具

DeepMind对无监督学习的原理近年来取得的成果、发展前景进行了综述

这与我们的大脑中处理信息的方式非常相似,其中初级感官处理区域中的简单边缘和纹理,然后组装成复杂对象。....
的头像 人工智能 发表于 04-13 11:12 605次 阅读
DeepMind对无监督学习的原理近年来取得的成果、发展前景进行了综述

分析深度学习技术现状,研判深度学习发展趋势

深度神经网络节点功能不断丰富。为了克服目前神经网络存在的局限性,业界探索并提出了新型神经网络节点,使....
的头像 人工智能学家 发表于 04-13 11:06 751次 阅读
分析深度学习技术现状,研判深度学习发展趋势

人工智能技术正在快速发展,将会给我们什么样的变化?人们应该如何与人工智能相处?

我已经在我的公司工作了32年,在这个行业工作了一段时间,并且参与了从我们的互联网业务到我们的云-移动....
的头像 人工智能学家 发表于 04-13 10:55 1259次 阅读
人工智能技术正在快速发展,将会给我们什么样的变化?人们应该如何与人工智能相处?

基于条件概率分类的两种模型算法:logistic回归模型与最大熵模型。

由第一节我们知道,熵是描述事物不确定性的指标。我们将熵的这一性质应用在信号检测领域,当信号包含了较强....
的头像 人工智能爱好者社区 发表于 04-13 10:45 351次 阅读
基于条件概率分类的两种模型算法:logistic回归模型与最大熵模型。

在深度学习如日中天的现在,三巨头又在忙活着什么?

如果说三巨头在全世界都不相信深度学习时的执拗,最终换来了图灵奖和一句句“泰斗”的赞美声;那么我们今天....
的头像 人工智能爱好者社区 发表于 04-13 10:43 488次 阅读
在深度学习如日中天的现在,三巨头又在忙活着什么?

常见机器学习算法名单

工作机制:这个算法由一个目标变量或结果变量(或因变量)组成。这些变量由已知的一系列预示变量(自变量)....
的头像 人工智能和机器人研究院 发表于 04-13 10:38 524次 阅读
常见机器学习算法名单

关于OpenCV深度学习模块的内容

OpenCV是计算机视觉领域使用最为广泛的开源库,以功能全面使用方便著称。在LiveVideoSta....
的头像 LiveVideoStack 发表于 04-13 09:59 382次 阅读
关于OpenCV深度学习模块的内容

请问如何利用Python对Ginkgo USB- CAN进行发送和接收数据

Python版本:硬件版本3.5.3 两套Ginkgo USB-CAN 接口:VTG203B 硬件连接: ITEM1    ITEM2 ...
发表于 04-13 09:35 46次 阅读
请问如何利用Python对Ginkgo USB- CAN进行发送和接收数据

基于python的verilog模拟是否可行?

我注意到在模拟或HDL生成中使用Python有一些活动。 技术效果如何? 任何有经验的RTL设计师都尝试过这个想法? 以上来...
发表于 04-12 14:59 22次 阅读
基于python的verilog模拟是否可行?

AI是否真的能分清人类的情绪?

情感人工智能的应用价值可以深入到人们日常工作和生活的方方面面,从视频情感人工智能看,由于视频情感人工....
的头像 人工智能 发表于 04-12 12:33 221次 阅读
AI是否真的能分清人类的情绪?

腾讯优图推出名为DSFD(中文名为双分支人脸检测器)的全新算法

该算法已被计算机视觉顶级会议CVPR 2019接收,原文《DSFD: Dual Shot Face ....
的头像 人工智能 发表于 04-12 12:19 389次 阅读
腾讯优图推出名为DSFD(中文名为双分支人脸检测器)的全新算法

3D相机专家Arthur van Hoff任职苹果一个未命名项目的高级架构师

Jaunt作为VR界曾经首屈一指的公司,但也遇到了不少问题。去年,Jaunt就开始卸载其部分重要资产....
的头像 AR联盟 发表于 04-12 11:41 357次 阅读
3D相机专家Arthur van Hoff任职苹果一个未命名项目的高级架构师

机器学习:快速精确预测电子结构问题

基于求解密度泛函理论(DFT)Kohn-Sham(KS)方程的模拟,已成为现代材料学和化学研究和开发....
的头像 知社学术圈 发表于 04-12 10:57 221次 阅读
机器学习:快速精确预测电子结构问题

机器学习的推荐系统运作假设

吴恩达机器学习笔记——推荐系统
发表于 04-12 07:09 26次 阅读
机器学习的推荐系统运作假设

python入门圣经《Python编程:从入门到实践》高清电子书

豆瓣评分 9.1 本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分:第一部分介绍用Python 编程所...
发表于 04-11 18:22 303次 阅读
python入门圣经《Python编程:从入门到实践》高清电子书

如何进行改进随机游走进行网络表示学习算法资料说明

现有的基于Word2vec的网络表示学习(NRL)算法使用随机游走(RW)来生成节点序列,针对随机游....
发表于 04-11 16:51 29次 阅读
如何进行改进随机游走进行网络表示学习算法资料说明

python核心编程中文第三版电子书免费下载

 本书是经典畅销图书《Python 核心编程(第二版)》的全新升级版本,总共分为3 部分。第1 部分....
发表于 04-11 16:08 85次 阅读
python核心编程中文第三版电子书免费下载

TensorFlow和PyTorch框架的几个重要发展

在最大的搜索引擎上进行网络搜索是衡量受欢迎程度的一个标准。我们查看了过去一年谷歌趋势的搜索历史。我们....
的头像 人工智能 发表于 04-11 12:01 303次 阅读
TensorFlow和PyTorch框架的几个重要发展

超过Java,Python成为世界第一编程语言

超越Java:Python正式登顶世界第一编程语言
发表于 04-08 11:43 52次 阅读
超过Java,Python成为世界第一编程语言

请问如何将Python程序交叉编译至Arm运行?

          背景:Ubuntu-Linux操作系统,使用Python和PyQt5编写了一款界面软件,利用Pyins...
发表于 04-07 11:46 246次 阅读
请问如何将Python程序交叉编译至Arm运行?

Python与数据库建立链接的操作方法

Python操作数据库
发表于 04-03 15:01 54次 阅读
Python与数据库建立链接的操作方法