2022年4月19日火曜日

マイクロソフトは曲者になりつつあります。

 と言っても日本語環境なのでガラパゴス化と言った方が性格かも?

殆どのソフトでは半角や全角文字等も数字の変換が問題ないのですが、機械学習に使うpandas(python)は見事に認識しません。

ハマっているのはこうです。

ValueError: invalid literal for int() with base 10: '5,300.00'

エクセルで取り込んだデータの数字が5,300.00でした念の為データフレームの列を正規化df['見積金額'].str.normalize("NFKC")としてもエクセルの',''.00'は半角としても文字と認識するようで5,300.00を型変換しても上記の様なエラーが出ます。

pandasは数字として認識しません。5300にしてやっとstr()からint()に変換出来ました。

国内の会社でデータサイエンスをしている人には常識かもしれませんが、かなりの時間悩みました。

強制的に変換するとNaNになってしまいます。

#df['見積単価'] = pd.to_numeric(df['見積単価'], errors='coerce')

変にコピペできない様にコメントアウトしています。

マルチインデックスにしても上手く順番通りにならないエラーはまだ不明です。

pandasのメソッド自体が間違っているのかでも悩むのにこの手のエラーはタチが悪いです。


df['見積金額'] = df['見積金額'].str.replace(',','')
df['見積金額'] = df['見積金額'].str.rstrip('0')
df['見積金額'] = df['見積金額'].str.rstrip('.')
df['見積金額']=df['見積金額'].fillna(0)
df['見積金額']
df['見積金額'].astype('int')
0            5300
1         7163000
2               0
3               0
4               0
           ...   
217849    5836700
217850    6517200
217851    1954400
217853          0
217854          0
Name: 見積金額, Length: 194891, dtype: int64

整数型に変換出来ました。

2022年4月14日木曜日

サーマルステレオカメラ

サーマルカメラを左右に1セットつけて3D画像にする実験を大工大の学生にご協力していただきました。

iPhoneアプリはアップデートしましたが全てのモデルには対応出来ていない状況です。
FLIR社に掲載されたプロジェクトですが、アプリとして正式なリリースをしていないので再度実験して問題点を整理中です。

  • まず左右のセットに電力を均等に配分しないと画像のバランスが崩れています。
  • デザインもある程度考慮する必要があります。
  • 立体感についてですが、センサーの距離は離すと立体感が強くなりますが、あまり距離を離すと不自然な感覚で酔うようになります。
今回アプリ側には3点測量で距離を計算する機能を追加しています。5m前後までの測定が限界で誤差は大きいですが、例えば炎の様な物質でないものの測定はこの方法しかできません。
例えば火事の消化活動で消火対象までの距離が分からないと適切に消火剤を散布できません。
実践的な用途でも評価されると思います。FLIR社はこの機能についてのレポートをホームページから削除したので軍事的な要素があると思われます。ドローンを兵器としている実践では効果が出ていますが、技術がその様な形で使用されるのは非常に残念です。

大工大と大商のアーリーアダプターコミュニティでサーマルステレオカメラを使ってスポーツやお化け屋敷の提案をして頂きました。アプリや機器をリリースすれば予想外な使われ方もあり出せるものは発表しようと思います。
技術的な問題で正式版は遅れています。アプリに使えるライブラリーやOSのバージョンアップや機器別の設定等が複雑なので整理中です。