科学・技術

2021年7月26日 (月)

Yolov4で物体検出した対象にIDつけて追いかけ(トラッキング)つつ、ある場所を通過した人をカウントするやつ作ってみた

まるでどこかのラノベのような長いタイトルで申し訳ないですが、表題の通りのもの、作りました。

Track02  

用途としては、ある場所を通過した人の人数を数える、という、イベントなどでは使いたくなるやつです。

(ただし、今回のは出入り方向のどちらも区別なくカウントします)

もちろん、一から作ったわけではなく、ベースの仕組みがあったので、それを改造して作成。

ベースとしたコードは、こちら。

GitHub - LeonLok/Deep-SORT-YOLOv4: People detection and optional tracking with Tensorflow backend.

「Deep Sort Yolov4」という、Yolov4を使って物体検出(デフォルトでは人)をさせて、それぞれにIDをつけて追跡する、いわゆる「物体追跡」のコードです。

物体検出には、検出精度が高くて定評な(かつ商用利用も安心な)Yolov4を使ってます。

しかもこのコード、TensorFlow 1.14とKeras 2.2.4という、我が家の環境でも動きます。

(なお、TensorFlow 2.0版も同梱されてます)

ここでは、Windows 10+Python 3.7.9+TensorFlow 1.14+Keras 2.2.4で話を進めます。

まず、上のコードをZIPでダウンロードし、展開。

Deep-SORT-YOLOv4-master」というフォルダができるので、その中の「tensorflow1.14」‐「deep-sort-yolov4」に入ります。

で、まずはREADME.mdのQuick startに従い、既存の学習モデルを入手、変換します。

ここから「yolov4.weights」が入手できるので、それを上のフォルダに入れて、

> python convert.py

と入力し、実行。

yolo4.h5」というファイルができるので、それを「model_data」というフォルダに移動。

ここでまず、

> python demo.py

を動かしてみます。

Track03

多分、デフォルトではこんな感じの絵が出てくるはずです。

歩行者にそれぞれ個別のIDが割り振られて、ちゃんと追跡されているのが分かるかと思います。

読み込む動画を変えたいときは、「demo.py」の中の41行目にある

file_path = 'video.webm'

のイコールの後ろ、「video.webm」のところを処理させたい動画ファイル名に変えてやればOKです。

Track01

こんな感じになります。

今回の目的は、ある場所の通過地点の人の数をカウントすることが目的なため、上側から撮影した俯瞰動画の方が都合がいいです。

ということで、ここでは以前に書いた「Jetson Nanoの固定カメラで人の動きを分析する「動線分析」をやらせてみた: EeePCの軌跡」で、Jetson Nanoの中に入っていた「pedestrians.mp4」を使うことにします。

さて、このままでは、全然人をカウントしてくれません。そこで、このdemo.pyを以下のように書き換えます。

demo.py


#! /usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import division, print_function, absolute_import

from timeit import time
import warnings
import cv2
import numpy as np
from PIL import Image
from yolo import YOLO

from deep_sort import preprocessing
from deep_sort import nn_matching
from deep_sort.detection import Detection
from deep_sort.detection_yolo import Detection_YOLO
from deep_sort.tracker import Tracker
from tools import generate_detections as gdet
import imutils.video
from videocaptureasync import VideoCaptureAsync

warnings.filterwarnings('ignore')

def main(yolo):
  with open('test.csv','w'as f:
    # Definition of the parameters
    max_cosine_distance = 0.3
    nn_budget = None
    nms_max_overlap = 1.0
    
    # Deep SORT
    model_filename = 'model_data/mars-small128.pb'
    encoder = gdet.create_box_encoder(model_filename, batch_size=1)
    
    metric = nn_matching.NearestNeighborDistanceMetric("cosine", max_cosine_distance, nn_budget)
    tracker = Tracker(metric)

    tracking = True
    writeVideo_flag = True
    asyncVideo_flag = False

    file_path = 'pedestrians.mp4'
    if asyncVideo_flag :
        video_capture = VideoCaptureAsync(file_path)
    else:
        video_capture = cv2.VideoCapture(file_path)

    if asyncVideo_flag:
        video_capture.start()

    if writeVideo_flag:
        if asyncVideo_flag:
            w = int(video_capture.cap.get(3))
            h = int(video_capture.cap.get(4))
        else:
            w = int(video_capture.get(3))
            h = int(video_capture.get(4))
        fourcc = cv2.VideoWriter_fourcc(*'XVID')
        out = cv2.VideoWriter('output_yolov4.avi', fourcc, 30, (w, h))
        frame_index = -1

    fps = 0.0
    fps_imutils = imutils.video.FPS().start()

    count = 0

    while True:
        count+=1
        ret, frame = video_capture.read()  # frame shape 640*480*3
        if ret != True:
             break

        t1 = time.time()

        if count==1:
            cv2.imwrite('test.jpg',frame)

        image = Image.fromarray(frame[...,::-1])  # bgr to rgb
        boxes, confidence, classes = yolo.detect_image(image)

        if tracking:
            features = encoder(frame, boxes)

            detections = [Detection(bbox, confidence, cls, feature) for bbox, confidence, cls, feature in
                          zip(boxes, confidence, classes, features)]
        else:
            detections = [Detection_YOLO(bbox, confidence, clsfor bbox, confidence, cls in
                          zip(boxes, confidence, classes)]

        # Run non-maxima suppression.
        boxes = np.array([d.tlwh for d in detections])
        scores = np.array([d.confidence for d in detections])
        indices = preprocessing.non_max_suppression(boxes, nms_max_overlap, scores)
        detections = [detections[i] for i in indices]

        for det in detections:
            bbox = det.to_tlbr()
            score = "%.2f" % round(det.confidence * 1002) + "%"
            cv2.rectangle(frame, (int(bbox[0]), int(bbox[1])), (int(bbox[2]), int(bbox[3])), (25500), 2)
            if len(classes) > 0:
                cls = det.cls
                cv2.putText(frame, str(cls) + " " + score, (int(bbox[0]), int(bbox[3])), 0,
                            1e-3 * frame.shape[0], (02550), 1)

        if tracking:
            # Call the tracker
            tracker.predict()
            tracker.update(detections)

            for track in tracker.tracks:
                if not track.is_confirmed() or track.time_since_update > 1:
                    continue
                bbox = track.to_tlbr()
                cv2.rectangle(frame, (int(bbox[0]), int(bbox[1])), (int(bbox[2]), int(bbox[3])), (255255255), 2)
                cv2.putText(frame, "ID: " + str(track.track_id), (int(bbox[0]), int(bbox[1])), 0,
                            1e-3 * frame.shape[0], (02550), 1)
                track_info = str(count) + ' , ' + str(track.track_id) + ' , ' + str((int(bbox[0]) + int(bbox[2]))/2) + ' , ' + str((int(bbox[1]) + int(bbox[3]))/2)
                print(track_info,file=f)
                print(track_info)

        cv2.imshow('', frame)

        if writeVideo_flag: # and not asyncVideo_flag:
            # save a frame
            out.write(frame)
            frame_index = frame_index + 1

        fps_imutils.update()

        if not asyncVideo_flag:
            fps = (fps + (1./(time.time()-t1))) / 2
            print("FPS = %f"%(fps))
        
        # Press Q to stop!
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    fps_imutils.stop()
    print('imutils FPS: {}'.format(fps_imutils.fps()))

    if asyncVideo_flag:
        video_capture.stop()
    else:
        video_capture.release()

    if writeVideo_flag:
        out.release()

    cv2.destroyAllWindows()

if __name__ == '__main__':
    main(YOLO())

ところどころ書き換えてますが、要するにこれ、最初の1枚目の画像を出力し、画像のコマ数、トラッキングIDとボックスの中心座標を、CSVファイルに吐き出すようにしただけです。

Track04

こんなのが出てきます。左から順に「コマ数」「トラッキングID」「検出ボックス中心のX座標(ピクセル)」「〃 Y座標」。

それを可視化するコードは、こちら。

plot_count.py


import numpy as np
import matplotlib.pyplot as plt
import csv
import math
import cv2

cross_id = []

# 通過判定のボックス範囲
bminx = 673
bmaxx = 711
bminy = 196
bmaxy = 324

# カラーマップを作成
np.random.seed(133)

col_b = np.random.randint(0,255,256)
col_g = np.random.randint(0,255,256)
col_r = np.random.randint(0,255,256)

# 1枚目の画像を読み取り
img = cv2.imread('test.jpg')

with open("./test.csv","r"as f:
  with open('cross_id.csv''w'newline=''as file:
    reader = csv.reader(f)
    for line in reader:
        id = math.floor(float(line[1]))
        x = math.floor(float(line[2]))
        y = math.floor(float(line[3]))

        # id書き込み
        if x>bminx and x<bmaxx and y>bminy and y<bmaxy:
            print(id,file=file)
            cross_id.append(id)

        # 点をプロット
        cv2.circle(img, (x, y), 2color=(int(col_b[id%255]), int(col_g[id%255]) ,int(col_r[id%255]) ), thickness=2)

# 四角形
cv2.rectangle(img, (bminx ,bminy), (bmaxx, bmaxy), (00255),thickness=2)
# 画像書き込み
cv2.imwrite('image.png',img)

# IDの重複を削除
count_id = list(set(cross_id))

# 通過数のカウント表示
print(len(count_id))

# 重複を除いたIDを書き込み
file = open('count_id.csv''w'newline=''
writer = csv.writer(file)
for ele in count_id:
    writer.writerow([ele])

# 結果を表示する。
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.axis('off')
plt.show()

これで得られた画像は、以下。

Track02

各々の人の軌跡の画像が、こんな感じに得られます。

で、真ん中ちょっと右に赤い四角がありますが、このコードは同時に、ここを通過する人の人数をカウントしてます。

赤枠の座標は、上のプログラム中の「bminx」「bmaxx」「bminy」「bmaxy」でそれぞれX、Y座標を指定してます。

で、上のプログラム中に「cross_id」という変数(リスト)がありますが、そこにこの赤枠内を通過したdeep sortが取得したIDが記録されます。

が、実はこの赤枠内を通過している間がすべて記録されるため、同じIDがいくつも記録されてます。

Track05

こんな感じ。

で、この重複部分を削除したのが「count_id」というリストで、

Track06

こうなります。

上の図でも見てわかると思いますが、この赤枠内を通過した人は3人。

で、IDも3つ。

ちゃんと、カウントされていることが分かるかと思います。

なお、実行ターミナル上にもこの「3」という数字が出てきます。

固定カメラで得られた動画と、どこを通過した人数をカウントしたいか、さえ決めれば、カウントしてくれます。

ただし、入場、出場の人数分けをしたいときは、今のところできませんね。またそれは、いずれ考えようかと。

ところで、私がやりたかったのは、実は「人」ではなく「車」のカウント。

ある場所を通過する車の台数をカウントする必要があり、それをさせるためにこれを作りました。

が、このままでこいつ、「人」しかカウントしません。

これを「車」用に変えるには、同じフォルダ内にある「yolo4.py」を開き、その104行目の


if predicted_class != 'person':


if predicted_class != 'car':

に変えてやれば、車をカウントできるようになります。

なお、ラベル名は「model_data」フォルダの中にある「coco_classes.txt」を参照してください。

このラベル内にないものを検出させたい場合は……頑張って、独自データで学習させるしかありませんね。

まあ、たいていは人か車をカウントすることが多いので、その用途でなら上の方法で行けます。

ところで、今回は上の「demo.py」と「plot_cound.py」を別々にしてます。

一緒にしようと思えばできたのですが、トラッキングしたデータをカウントする場所をトライアンドエラーすることを想定し、敢えてコードを分けておきました。

これが一緒だと、試行錯誤するたびに毎回動画処理をすることとなり、ものすごく時間がかかります。

さらに、数か所をはかることになりそうなので、その場合は「plot_cound.py」をコピーして、それぞれの場所のカウントを個別に取る、なんてことも対応できます。

ついでに言うと、入退場を別々に処理させたい場合も、いったんは別々に作ってからやった方がプログラムの試行錯誤もやりやすいかと思ったわけです。

例によって、このブログに載ったコードは、自由に使っていただいてOKです。元々、ベースのコードもそうですし。

ただし利用は、自己責任でお願いいたします。


TensorFlowはじめました3 Object Detection ─ 物体検出 (NextPublishing)

2021年7月23日 (金)

月の土地、買いました

物欲のなされるがままに、これまでもいろいろと変なものを買ってきました。例えば、100兆ドル札(ただしジンバブエドル)等。

が、今度の買い物はスケールだけは大きいです。

Img_0581

なにやら意味深な封筒。その中身は……

Img_0583

3枚の紙が入ってます。

これ、月の土地の所有を証明するものなんです。

左から順に、月の土地の権利書、マップ、そして月憲法。

これを売ってるのはこちら。

 月の土地|ルナエンバシージャパン

要するに、とある人が「月って、個人なら所有できるんじゃねぇ!?」と思い立ち、裁判所やら国連やらに(一応は)お伺いを立てたのちに、それを売却する権利を得た、ということのようです。その行動力に、あっぱれ。

なんだ、そんなもん、本当に月に行ける時代になったら、何の役にも……いやいやいやいや、夢のないことを言っちゃあいけません。とにかく、月の土地が買えるんです。

仮にも「小説家になろう」で宇宙SFを書いている者としては、月の土地の一つや二つは持っておかないとだめじゃないかと思った次第です。

Img_0588

ちなみに、その土地の広さは1エーカー。およそ1200坪。我が家の土地の約25倍の広さです。でかい。

それが、たった(?)の2700円(送料込みで3030円)で買えるんですから、安いものです。

購入した日付は、2021年7月19日。アポロ11号の月着陸52年目の前日……でもありますけど、私の50歳の誕生日です。

Img_0585

ちなみに、場所は大体この辺だそうです。

お近くにお立ち寄りの際は、是非いらしてください。

と、みんなに言ってます。まあ、来れるものなら・・・

意外に赤道に近いので、月の中でも比較的行きやすいところですね。

Img_0586

ちなみに、土地の権利書なのに取説がついています。

Img_0587

早い話が、あの3枚の紙の和訳ですね。なかなかどうして、親切です。

しかし、人類が月に当たり前のようにいける時代は、果たして来るんでしょうか?

そんな時代が、生きている間に訪れたなら、行ってみたいですね。自分の買った土地とやらに。

なお、妻からはすげえバカにされました。。。


月ライト 月ランプ 間接照明 母の日 ギフトシャンデリア インテリア テーブルランプ月のランプ ナイトライト 授乳用ライト タイマー 15cm 3Dプリント usb充電 リモコン タッチ調光 16色切り替え 無段階調光 吊る下げり可能 プレゼント 誕生日 結婚 父の日 引っ越し 進学のお祝い (15cm月ライト)

2021年5月15日 (土)

テスラが環境負荷を考慮してビットコイン決済を中止

タイトルそのまんまのニュースです。イーロンマスク自身がTwitterで宣言してますね。

Teslaがビットコインでの決済を中止。環境配慮 - PC Watch

その理由として、ビットコインのマイニングや取引に、石炭火力発電が使われていることで、環境に多大なコストをかけているから、としています。いや、おっしゃる通りですね。

正直、ただお金を生み出すためだけに計算コストを使うなど、何の意味もない行為。これで経済が回るのであればいいのですが、それ、電子マネーじゃいかんの?しかも、環境に影響与えるとか、マジ最悪。

そういえば、ビットコインを1億分の1に分割して、単位を「サトシ」にするべき、とかいう話が出てましたね。

ビットコイン価格、表記を「サトシ単位」で 業界で取り組み

いや、サトシでもペリカでも関係ないですわ。その前になくしましょうや、こんなもの。

PC界隈でも、GPUやHDDの品不足を誘発している、ただ迷惑なだけのマイニング需要。

迷惑極まりないこのバカげた仕組みに、さっさと終止符が打たれることを望みます。


MSI GeForce GTX 1650 D6 AERO ITX OCV2 グラフィックスボード VD7633

2020年12月31日 (木)

2020年まとめ

今年も、いろいろありましたね……

何といっても今年は新型コロナ禍の年。コロナで始まり、コロナで終わる。いや未だに、先が見えておりません。だからというわけではありませんが、どちらかというと今年は、私にとってあまりいいことはなかったですね……

このブログにとっては、毎日更新をやめた年でもあります。

とはいえ、やはりまとめができるほどの出来事が満載。今年を振り返ってみます。

【1月】

画像異常検知のデモ機「AIビー玉選別機」を作ってみた: EeePCの軌跡

さて今年は、いきなりRaspberry Pi工作から始まりました。

昨年末に買ったRaspberry Pi 4を使ってますが、結局今年は、Raspberry Pi 3B+をよく使った年でした。

それはともかく、いわゆる画像異常検知にトライしたこの事例。社内でも、使われつつあります。

【2月】

プロジェクター買いました: EeePCの軌跡

2月はせいぜい、これくらいですかねぇ。プロジェクターを買いました。

結論から言うと、ほとんど使ってません。家ではまるで使い道がないですね、これ。

【3月】

このあたりからコロナ禍が猛威を振るい、学校が休みになったり、外出自粛が叫ばれたり、インフラもないのに在宅勤務が推奨されたり……などなど、ストレスマッハな時期がはじまります。

そんな中でも、地道に活動しておりました。

 Raspberry Pi Camera V1.3の「互換カメラ」買ってみた: EeePCの軌跡

ブログが13年目に入る3月9日の記事がこれ。Raspberry Piカメラの互換品を安く手に入れたというお話。

このカメラ自体、今でも使っていて重宝してますが、そんな話題とは裏腹に、しれっとこの記事の最後に「毎日更新をやめます宣言」をしております。

ちょうど12年目のこの日を境に、自身の活動を中心とした記事のみを乗せようと心がけてます。

当ブログをhttps化しました: EeePCの軌跡

さて、このブログもう一つの大きな変化点は「https化」。

あまり意味があるような、ないような変化点ですが、ブラウザによってはかなりうっとおしい警告が出るため、切り替えてみました。

今ではほとんどセキュリティ警告が出なくなっているはずです。

 Ankerのロボット掃除機”Eufy”買ってみた: EeePCの軌跡

こんなものも買いました。

自動掃除機です。2万円以下で、わりと賢い掃除機を入手。週1で2階をせっせと掃除しております。これは良い買い物でした。

おかげさまで、コロナ太りが捗り過ぎて、夏の健康診断に引っかかるというおまけが付いてきましたが。

【4月】

子供の春休みが、終わりません。そんな4月には、こんなものを買ってます。

iPad用トラックパッド・キーボード付きケース買ってMacBookっぽく使えるか試してみた: EeePCの軌跡

結局、ほとんど使ってないのですが、iPad用キーボードです。トラックパッド付。

iPadOS 13がリリースされて、iPadがトラックパッド対応したため購入。

といってもうちにはMacBook Airがあるので、どうしてもそちらにいってしまいます。

使い勝手は、やはりクラムシェル端末には敵いませんね。

小説家になろう 第8回ネット小説大賞 一次選考に2作品が選ばれました: EeePCの軌跡

で、そんなMacBook Airの成果というべきものがこれ。

今年もなんとか1次通過しました。しかも、2作品。相変わらず、2次は全滅しましたが……

来年はもっと、飛躍できないかなぁ。

なお今年はブログ上のネームを、この「小説家になろう」にそろえて「ディープタイピング」としました。Twitterも同じく。ようやく発音可能な名前になりましたね。

特に記事にはしてませんが、この4月頃から会社でZoomをよく使うようになります。今ではすっかりZoom使いです。

【5月】

サーマルセンサー「AMG8833」とRaspberry Piで非接触体温計っぽいものを作ってみた: EeePCの軌跡

コロナ禍ということで、こういうものを作ってみました。

非接触体温計……っぽいもの。頑張れば使えそうなやつです。お値段も5000円ほどと、お手軽なセンサーです。

この記事ですが、このブログの今年のアクセス数トップ記事になっておりますね。

それにしても今年は、久しぶりにRaspberry Piをよく使った年です。

【6月】

6月は、あまり実りのない月でしたね。健康診断に引っかかったことくらいでしょうか?

が、こんな出来事がありました。

Apple ID詐欺……やられかけました……: EeePCの軌跡

Appleっぽい詐欺サイトに誘導されかけました。

特に実害はなさそうでしたが、警戒してすぐにApple IDのパスワードを変更してます。

そういえば周りにも、Facebookを乗っ取られた人がいました。世の中が乱れると、なぜかこういう輩が暗躍するようです。こういう時期、要注意ですね。

【7月】

コロナ禍がややおさまった名古屋 大須へ行って参りました: EeePCの軌跡

すごく久しぶりの大須探訪記です。長男と2人で、行ってきました。

コロナ禍でどうなっていることかと心配でしたが、ここは相変わらずでしたね。

といっても、細かい店がいくつか閉店(または閉店予告)しておりました。大須と言えども、やはり爪痕はあるようです。

長男と共に、大須の雰囲気を満喫した夏でした。

クラムシェル端末風に使えるタッチパッド付iPadキーボードケースを買ってみた: EeePCの軌跡

性懲りもなく、こんなものを購入。

最新版のiPad向けの商品を買ったため、サイズが合いませんが、何とか無理やり使ってレビュー。

使用感は、悪くありませんね。ただし、やはりMacBook Airには敵わず、結局これも使わずじまい。

【8月】

ミラー型ドライブレコーダー購入: EeePCの軌跡

ドライブレコーダーを買いました。

ルームミラーを電子ミラー化 & 後方カメラ付きというもので、今どきの煽り運転対策には最適。

夜でも後方を確認しやすくなりました。これは買いです。

【9月】

Surface Goがようやく実用形態に: EeePCの軌跡

今年はついに、Surfaceを買いました。

やはり、Zoomやらを使っていると、この手の軽くて起動が速い端末が欲しくなります。

スマホ世代には、ピッタリなWindows端末ですね。おすすめです。

ららぽーと東郷へ行ってきました: EeePCの軌跡

一方、うちの近所に馬鹿でかいショッピングモールが誕生です。

50km圏内をカバーする目的で作られたこのショッピングモール、SIMフリーiPhoneが調達できる店が、まさか徒歩圏内にできようとは思ってもいませんでした。

が、私にとってのこのショッピングモール最大のインパクトはヴィレッジヴァンガードが入っていること。

福袋入手は、ここで決まりです。

【10月】

久しぶりにEeePC 1000H-Xを起動してみた: EeePCの軌跡

ふと見つけた32ビットOSの話題につられて、久しぶりにEeePC 1000H-Xを起動してみました。

バッテリーは完全に死んでますが、本体はまだ生きてます。

とはいえ、さすがにもう遅いですね……12年前の、しかも最底辺のPCですからね。

Tensorflow.js + WebGLで顔検出してくれるWebアプリ: EeePCの軌跡

顔検出のWebアプリの紹介です。マスク顔でもこの通り、検出可能。

何気に、私の顔が出ております(ただしマスク付き)。

【11月】

Raspberry Pi + 磁気センサーで ドアの開閉をセンシングしてみた: EeePCの軌跡

ドアセンサー、作ってみました。会社のトイレIoTの要望に応えての工作です。

いかにもRaspberry Piらしい(?)電子工作ですね。

3COINSのBluetoothイヤホン買ってみた: EeePCの軌跡

瞬発的なアクセス数としては、今年一番バズった記事です。

3COINSで買ったBluetoothイヤホン。

1500円という金額にしては、とても使いやすく音質も悪くないです。

もっとも、ノイズキャンセリングがあるわけではないので、外ではそれなりの音質。

おまけに、よく途切れることがあります。室内でも時々、ぶちぶちと切れますね。安定性はいまいち。

でもまあ、1500円ですから、これ。そう思えば妥当かと。

ゲーム&ウォッチ型スーパーマリオ復刻版ゲーム: EeePCの軌跡

ところで、11月はいろいろなものを買った月です。その一つがこれ。スーパーマリオ35周年記念で、ゲーム&ウォッチ型のゲーム機。

ちなみに、スーパーマリオ1の方はクリアしました。

3年ぶりにiPhoneを購入!iPhone 12 グリーンをららぽーと東郷で入手!: EeePCの軌跡

で、今年最高額の買い物は、これ。

iPhone 12です。128GBで、色はグリーン。

これまでiPhone 5c以降、様々なカラバリモデルが出ましたけど、白・黒以外を買ったのはこれが初めてです。

画面サイズも6.1インチと、我が家では最大サイズのiPhone。おかげでとても見やすいです。

【12月】

11月はガジェット購入祭り的な月でしたが、その余波は12月にも残ります。

Amazon Echo Show 5買ってみた: EeePCの軌跡

とうとう買ってしまいました、Amazon Echo show 5。家電リモコンなどはつけてませんが、音楽再生に使ってます。

音声認識は高いですが、Googleに比べると、あまり遊び心がないですね。真面目です。はい。

と、本年のガジェットな買い物はこれで終わるはずだったんですが……

 ドスパラのゲーミングノート「GALLERIA GR1650TGF-T」を購入!: EeePCの軌跡

やっぱり、無理でした。

フィニッシュは、こいつが飾りました。これが今年2番目の買い物(ちなみに3番目はSurface Go)。

ゲーミングノートPCではコスパ最高と謳われたドスパラのGALLERIA GR1650TGF-Tを、メインPCとして購入。

スマホやSurface Goのおかげで起動時間の速さに慣れすぎてしまい、HDDオンリーのデスクトップ機ではやはり使い物にならないことがしばしば。とうとう勢い余って購入。

おかげさまで、すごく快適です。起動も使い勝手もよくなり、机の上も広くなっていいことづくめ。

Ryzenの6コアも、なかなかいいです。

もっと早くこうするべきだったかと。

ただ、その副産物として、Surface Goを使わなくなりましたが……

しかし、これで快適なら、プロセッサ性能の向上ぶりが段違いといわれるM1チップ搭載のMacBookなど手に入れようものなら、どうなることか……次は、Apple Siliconかな?よだれが止まりません。

久しぶりに、PC界隈が活気づいた年ですね。振り返ればiPhoneよりも、こっちの方がインパクト大きいです。

◇◇◇

とまあ、コロナ禍で外出も控えめなこの年でしたが、それでも振り返ると案外、いろいろとありましたね。

個人的には、あまり良い年ではありませんでしたね。ブログにはほとんど書いてませんが、裏ではいろいろトライしては、成果を残せずという事柄が多いです。

うーん、どうしてこうなった……振り返れば、今年はブログ開設以来初めてヴィレッジヴァンガードの福袋を買わなかったからでしょうか?あんなもの(?)にジンクスがあるとは思いたくないのですが……

その反動で、来年はもうちょっと、羽ばたきたいところです。叶うでしょうか、そんな願望。

と、まずは、ヴィレヴァン福袋を買うところからスタートですね。

今年の更新は、これでおしまいとなります。

来年も、よろしくお願いいたします。皆様、よいお年を。

エンスカイ 鬼滅の刃 2021年 カレンダー壁掛け B3サイズ

2020年9月17日 (木)

ベイルートでの爆発事故振り返りサイト

縦スクロールで振り返る、今年8月4日に起きたベイルートでの爆発事故の振り返りサイトです。

How a Massive Bomb Came Together in Beirut’s Port - The New York Times

Beiruit01

マウスまたはタッチでスクロールすると、映像が順次入れ替わるというコンテンツ。一体、あの事故現場で何が起きていたのか?を振り返ることができます。

後はスクロールするだけですが……CGを交えて、英語での解説と共に刻一刻と状況説明がされていきます。

Beiruit06

Beiruit07

Beiruit08

で、ついに爆発。ショックウェーブ(衝撃波)によって手前のビル表面が脆くも破壊される様子が出たところで、映像は終わります。

マウスまたはタッチで、この映像を一コマ一コマ送ることができるため、非常に見ごたえのあるサイトです。面白い……と言っては不謹慎ですが、ぜひご覧ください。

爆発物って、意外と身近にあるものなんですよね。ガスやリチウムイオン電池なんて、どこの家庭でもあるでしょうし、工場のある会社ならばそれこそ爆発物だらけです。

ですから、自分事として見ていただけるとよいかと。日本でも大なり小なりこういう事故が起きてますから、決して他人事ではない人は多いと思われます。

基礎からの爆発安全工学 - 構造物の耐爆設計の基礎

2020年8月29日 (土)

新型コロナ接触確認アプリ「COCOA」から接触通知が来たら!?

COCOA、私も入れてます。が、接触通知は今のところ来ておりません。

(「0件の接触の恐れが……」みたいな紛らわしい通知は来ますが)

で、このアプリが接触の可能性があると判断した場合、どういう通知が出るのか?

実際にその経緯をTwitterで紹介しタカタがいて、それが以下のサイトにまとめられております。

【コロナ】「COCOAから接触通知が来た!」とても参考になる体験談が話題 | BREAK TIME

詳しくは上記リンクを読んでいただきたいですが、まず来たのは「通知」だったようです。

うーん、これは実際に見たらびっくりしますね。私の0件の通知でもびっくりしますから。

で、アプリ内を確認するも、過去14日間の接触では、陽性者との接触は確認されませんでしたという画面が出るのみ。

が、接触記録のログを見ると、この方、確かに記録が残っていたそうです。

 

ちなみにこのログの確認の仕方ですが、iPhoneの場合、「設定」-「プライバシー」-「ヘルスケア」-「COVIA-19接触のログ記録」と辿り、そのちょっと下にある「接触チェックの記録」の中にある大量の日時の中を一つタッチすると、上のツイートのように、その時間での接触記録の詳細が表示されます。

なお、この記録を持って保健所に問い合わせた結果、無料でPCR検査を受けられたらしいです。

私はまだ幸い、こういうのには出くわしませんね。

通知が来たら、要注意ということです。

にしても、いつまでこの状況、続くんでしょうか?早くいつもの日常に戻って欲しいと願うばかりです。

アフターコロナ 見えてきた7つのメガトレンド

2020年7月26日 (日)

人体を拡張するテクノロジー!?SONYや東大などが人間拡張学事業を本格化

なんだか機械人間的な響きですが、ちょっと面白そうな話です。

ソニーと東大、「人間拡張学」事業化を本格化 凸版印刷や京セラなど連携 - ITmedia NEWS

人間とAI、テクノロジーを一体化させて、相互に能力を強化しあうという「IoA (Internet of Abilities:能力のインターネット)」なるものを本格的に進めているようです。

なんでしょうねぇ、ウェアラブルデバイスを取り付ければ、見たものの名前や情報を瞬時に得られるとか、そんなものが実現できる技術でも生まれるんでしょうか?いや、人間の脳にSSDを埋め込んで、途方もない量の記憶をしまい込めるなんていう人間が……それはちょっと、怖いですね。

でも、人間をネットに繋げちゃうのは間違いなさそうで、やっぱり脳内に情報を注ぎ込める仕組みが前提に……な訳はないでしょうが、ちょっぴり怖い反面、ワクワクする技術でもあります。

そんなAIと人間とが融合する時代に、人はどうあるべきか?

いや、もうちょっと具体的に、この日本はどうあるべきか?

最近、「シン・ニホン」なる本を買いまして、こういうテーマにハマっております。特に前半はかなり面白いのでおすすめです。

どんな本かは、以下の動画が参考になります。

凄い書評ですね。「日本という国はクソほどオワコン。でも、だからこそ、ここから勝てる」だそうで。

うーん、読めばわかりますが、確かに面白い論理展開です。歴史的な考察も、なかなかです。思わず納得。会社でも回し読みしようと思ってます。

後半、全然関係ない話になりましたが、まあこれが、このブログらしいところということで。


シン・ニホン AI×データ時代における日本の再生と人材育成 (NewsPicksパブリッシング)

2020年6月19日 (金)

衝突評価用バーチャル人体モデル「THUMS」が2021年より無償化

驚きですね、トヨタが開発したバーチャル人体モデル「THUMS」が、なんと無償化です。

 トヨタが衝突実験用のバーチャル人体モデル「THUMS」を2021年より無償公開 - Engadget 日本版

これ、買うと結構高いんですが、いきなり無償化してしまうとは……

リンク先には衝突ダミーの代わりに使える、故障しないため何度も使用可、という程度の紹介ですが、実はかなりインパクトは大きいです。

衝突安全の試験というものは、あちこちで行われております。が、その試験に人体を使うことはできません。危険ですからね。

そこで、バーチャルな人間を作り、それを使って衝突安全の評価をコンピューター上で行おうという意図で作られたこのモデル。

ダミーというのは、人体をかなり模擬してはいるものの、やはり人体とは程遠い。こういう衝突現象では、人体はどうなってしまうのか?それを事細かに調査できるのが、この人体モデルTHUMSです。

LS-DYNAという解析ソフトで使っているのは見たことがありますけど、それ以外の解析ソフトでもコンバートしてやれば使えるものと思います。

かなり太っ腹な決断をしましたね、トヨタは。個人的には、そう思います。これで、衝突安全性の評価がさらに進むと良いのですが。

自動車の衝突安全

2020年6月 7日 (日)

「これからはじまる科学技術プロジェクト」買ってみた

近所の本屋で見つけました。

Img_4021

枻出版社の「これからはじまる科学技術プロジェクト」です。

先日のスペースX社の有人宇宙船打ち上げ成功もあって、特に宇宙分野は目が離せません。

Img_4022

もちろん、この本にも載ってます、クルードラゴン。

ただ、ここには「2020年内」で、時期未定になってました。

Img_4023

なお、2020年の宇宙イベントには、こんなのや

Img_4024

こんなの

Img_4025

そしてこんなものも。

日本がらみが2つあります。できればいつか、H3で有人宇宙船を。

Img_4026

なお、この先には、こんな計画も。

アポロ宇宙船以来の探査計画。ぜひ、実現していただきたいものです。

ちなみに、火星へは2033年だそうです。

Img_4027

同年、こんなイベントもあるそうです。民間に移管されるんですね、これ。

Img_4028

宇宙ばかりではありません。こういうものも。

全体的に、前半はなぜか空中タクシー(有人ドローン?)が多くて、後半は宇宙関連が目白押しな印象。

コロナ禍で動きづらいご時世ですが、ぜひ手に取って、未来への夢を感じてみてはいかがでしょうか。


これからはじまる 科学技術プロジェクト (エイムック)

2020年5月31日 (日)

民間初有人宇宙船が打ち上げ成功

2人を乗せたスペースX社のクルードラゴンが、打ち上げに成功しました。

 CNN.co.jp : スペースXの宇宙船、打ち上げ成功 民間初の有人飛行

2020年5月30日、午後3時23分(日本時間31日午前4時23分)に、アメリカでは終了したスペースシャトル以来9年ぶり、そして民間としては初めての有人宇宙船が、宇宙に打ち上げられました。

国際宇宙ステーション(ISS)への到着は、日本時間で今夜の午後11時過ぎとのことで、ようやくアメリカは自身の持つ宇宙船で宇宙に出られるようになったことになります。

この後に、ボーイングが続く予定となってます。なお、7月にはこのクルードラゴンに乗って、日本人宇宙飛行士が打ち上げられる予定。

コロナ禍で世界中が沈んだ雰囲気のこの時期ですが、そんな中での快挙。ぜひともこの後の宇宙進出に貢献していただきたいですね。

ところで、すごい偶然ですが、本日より私も「民間宇宙船」の話の連載を開始しました。

連盟の交易商人と怪力魔女が宇宙の戦争を終わらせようと奔走する話(仮)

こちらも、よろしければぜひ。

これからはじまる 科学技術プロジェクト (エイムック)

より以前の記事一覧

当ブログ内検索

スポンサード リンク

ブログ村

無料ブログはココログ