You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

visualization.ipynb 494 kB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "code",
  5. "execution_count": 1,
  6. "id": "0ab662ce",
  7. "metadata": {},
  8. "outputs": [],
  9. "source": [
  10. "import matplotlib.pyplot as plt\n",
  11. "import torch\n",
  12. "import cv2\n",
  13. "from torchvision import transforms\n",
  14. "import numpy as np\n",
  15. "from utils.datasets import letterbox"
  16. ]
  17. },
  18. {
  19. "cell_type": "code",
  20. "execution_count": 2,
  21. "id": "cfd4b844",
  22. "metadata": {},
  23. "outputs": [],
  24. "source": [
  25. "device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
  26. "weigths = torch.load('./weights/yolov7-e6e.pt')\n",
  27. "model = weigths['model']\n",
  28. "model = model.half().to(device)\n",
  29. "_ = model.eval()"
  30. ]
  31. },
  32. {
  33. "cell_type": "code",
  34. "execution_count": 3,
  35. "id": "1ee054f1",
  36. "metadata": {},
  37. "outputs": [],
  38. "source": [
  39. "image = cv2.imread('./images/person.jpg') # 504x378 image\n",
  40. "image = letterbox(image, 1280, stride=64, auto=True)[0]\n",
  41. "image_ = image.copy()\n",
  42. "image = transforms.ToTensor()(image)\n",
  43. "image = torch.tensor(np.array([image.numpy()]))\n",
  44. "image = image.to(device)\n",
  45. "image = image.half()\n",
  46. "\n",
  47. "output = model(image)"
  48. ]
  49. },
  50. {
  51. "cell_type": "code",
  52. "execution_count": 4,
  53. "id": "7ec9e6ab",
  54. "metadata": {},
  55. "outputs": [],
  56. "source": [
  57. "obj1 = output[1][0][0, 0, :, :, 4].sigmoid().cpu().numpy()\n",
  58. "obj2 = output[1][0][0, 1, :, :, 4].sigmoid().cpu().numpy()\n",
  59. "obj3 = output[1][0][0, 2, :, :, 4].sigmoid().cpu().numpy()\n",
  60. "obj4 = output[1][1][0, 0, :, :, 4].sigmoid().cpu().numpy()\n",
  61. "obj5 = output[1][1][0, 1, :, :, 4].sigmoid().cpu().numpy()\n",
  62. "obj6 = output[1][1][0, 2, :, :, 4].sigmoid().cpu().numpy()\n",
  63. "obj7 = output[1][2][0, 0, :, :, 4].sigmoid().cpu().numpy()\n",
  64. "obj8 = output[1][2][0, 1, :, :, 4].sigmoid().cpu().numpy()\n",
  65. "obj9 = output[1][2][0, 2, :, :, 4].sigmoid().cpu().numpy()\n",
  66. "obj10 = output[1][3][0, 0, :, :, 4].sigmoid().cpu().numpy()\n",
  67. "obj11 = output[1][3][0, 1, :, :, 4].sigmoid().cpu().numpy()\n",
  68. "obj12 = output[1][3][0, 2, :, :, 4].sigmoid().cpu().numpy()"
  69. ]
  70. },
  71. {
  72. "cell_type": "code",
  73. "execution_count": 5,
  74. "id": "38878c81",
  75. "metadata": {},
  76. "outputs": [
  77. {
  78. "data": {

随着人工智能和大数据的发展,任一方面对自动化工具有着一定的需求,在当下疫情防控期间,使用mindspore来实现yolo模型来进行目标检测及语义分割,对视频或图片都可以进行口罩佩戴检测和行人社交距离检测,来对公共场所的疫情防控来实行自动化管理。