AI 如何改变智能城市物联网?
来源 | 愿码 (ChainDesk.CN) 内容编辑
愿码 Slogan | 连接每个程序员的故事
网站 | http://chaindesk.cn
愿码愿景 | 打造全学科 IT 系统免费课程,助力小白用户、初级工程师 0 成本免费系统学习、低成本进阶,帮助 BAT 一线资深工程师成长并利用自身优势创造睡后收入。
官方公众号 | 愿码 | 愿码服务号 | 区块链部落
免费加入愿码全思维工程师社群 | 任一公众号回复“愿码”两个字获取入群二维码
本文阅读时长:10min
根据 techopedia 的说法,智能城市是一个利用信息和通信技术提高城市服务(如能源和交通)质量和性能,从而降低资源消耗、浪费和总体成本的城市。
Deakin 和 AI Waer 列出了有助于定义智慧城市的四个因素:
在城市基础设施中使用各种电子和数字技术
利用信息和通信技术(ICT)改变生活和工作环境
将 ICT 嵌入政府系统
实施将人员和 ICT 结合在一起的实践和政策,以促进创新并增强他们提供的知识
因此,一个智能城市将是一个不仅拥有信息通信技术而且还以对居民产生积极影响的方式使用技术的城市。
人工智能(AI)与物联网一起,有可能解决城市人口过多带来的主要挑战,他们可以帮助解决交通管理,医疗保健,能源危机和许多其他问题。物联网数据和人工智能技术可以改善居住在智慧城市的公民和企业的生活。
智能城市及其 AI-powered-IoT(人工智能物联网)用例
智能城市拥有大量用于人工智能的物联网技术的用例,从保持更健康的环境到增强公共交通和安全。在下图中,您可以看到智能城市的一些用例:
智能交通管理
人工智能和物联网可以实施智能交通解决方案,以确保智能城市的居民尽可能安全,高效地从城市的一个点到另一个点。
洛杉矶是世界上最拥挤的城市之一,已经实施了智能交通解决方案来控制交通流量。它安装了路面传感器和闭路电视摄像机,可将有关交通流量的实时更新发送到中央交通管理系统。分析来自传感器和摄像机的数据馈送,并通知用户拥塞和交通信号故障。2018 年 7 月,该市在每个交叉口进一步安装了先进的交通控制器(ATC)柜。启用车辆到基础设施(V2I 通信和 5G 连接,这使他们能够与具有红绿灯信息功能的汽车进行通信,例如奥迪 A4 或 Q7。嵌入传感器的自动车辆的发布可以提供车辆的位置和速度,他们可以直接与智能交通信号灯通信,防止拥堵。此外,使用历史数据,可预测未来流量并用于防止任何可能的拥塞。
智能停车
生活在城市中的任何人都能感受到寻找停车位的困难,特别是在假日期间。智能停车可以缓解这个问题。通过将路面传感器嵌入停车位的地面,智能停车解决方案可以确定停车位是空闲还是占用,并创建实时停车地图。
Adelaide 市于 2018 年 2 月安装了智能停车系统,他们还推出了移动应用程序:Park Adelaide,它将为用户提供准确和实时的停车信息。该应用程序可以为用户提供远程定位,支付甚至延长停车会话的能力。智能停车系统旨在改善交通流量,减少交通拥堵并减少碳排放。
在三藩市交通局(SAFTA)实施 SFpark 智能泊车系统。他们使用无线传感器来检测计量空间中的实时停车位占用情况。SFpark 于 2013 年推出,平日温室气体排放量减少了 25%,交通量下降,司机的搜索时间减少了 50%。
在伦敦,威斯敏斯特 Westminster 市还在 2014 年与 Machina Research 合作建立了智能停车系统。早些时候,司机不得不平均等待 12 分钟,导致拥堵和污染,但自智能停车系统安装以来,没有必要等待,司机可以使用手机找到可用的停车位。
其他用例包括智能废物管理,智能警务,智能照明和智能治理。
人工智能可以为智能城市中的物联网适应做些什么?
建立一个智能城市不是一天的业务,也不是一个人或组织的工作。它需要许多战略合作伙伴,领导者甚至公民的合作。智能社区可以做些什么呢?为我们提供职业或创业机会的领域是什么?
任何物联网平台都必须满足以下要求:
用于收集数据的智能物品网络(传感器,相机,执行器等)
现场(云)网关,可以从低功耗物联网设备收集数据,存储并将其安全地转发到云端
流式数据处理器,用于聚合大量数据流并将其分发到数据湖和控制应用程序
用于存储所有原始数据的数据湖,甚至是那些看似没有价值的数据
可以清理和构建收集数据的数据仓库
用于分析和可视化传感器收集的数据的工具
基于长期数据分析自动化城市服务的 AI 算法和技术,并找到提高控制应用程序性能的方法
控制向 IoT 执行器发送命令的应用程序
用于连接智能物品和公民的用户应用程序
除此之外,还会出现有关安全和隐私的问题,服务提供商必须确保这些智能服务不会对公民的健康构成任何威胁。服务本身应易于使用,以便公民可以采用。
如你所见,这提供了一系列工作机会,特别是 AI 工程师。需要处理物联网生成的数据,并且要真正从中受益,我们需要超越监控和基本分析。将需要 AI 工具来识别传感器数据中的模式和隐藏的相关性。使用 ML/AI 工具分析历史传感器数据有助于识别趋势并基于它们创建预测模型。然后,这些模型可以由向 IoT 设备的执行器发送命令的控制应用程序使用。
构建智能城市的过程将是一个迭代过程,每次迭代都会增加更多的处理和分析。现在让我们来看一下 AI 供电的物联网解决方案的例子。
使用旧金山犯罪数据检测犯罪
旧金山市也有一个开放数据门户网站,提供来自不同部门的数据。在本节中,我们采用数据集提供来自旧金山所有社区的犯罪报告约 12 年(从 2003 年 1 月至 2015 年 5 月),并训练模型以预测发生的犯罪类别。有 39 个谨慎的犯罪类别,因此它是一个多类别的分类问题。
我们将使用 Apache 的 PySpark 并使用其易于使用的文本处理功能来处理此数据集。所以第一步是创建一个 Spark 会话:
第一步是导入必要的模块并创建 Spark 会话:
from pyspark.ml.classification import LogisticRegression as LR
from pyspark.ml.feature import RegexTokenizer as RT
from pyspark.ml.feature import StopWordsRemover as SWR
from pyspark.ml.feature import CountVectorizer
from pyspark.ml.feature import OneHotEncoder, StringIndexer, VectorAssembler
from pyspark.ml import Pipeline
from pyspark.sql.functions import col
from pyspark.sql import SparkSession
spark = SparkSession.builder \
.appName(“Crime Category Prediction”) \
.config(“spark.executor.memory”, “70g”) \
.config(“spark.driver.memory”, “50g”) \
.config(“spark.memory.offHeap.enabled”,True) \
.config(“spark.memory.offHeap.size”,”16g”) \
.getOrCreate()
我们加载 csv 文件中可用的数据集:
data = spark.read.format(“csv”). \
options(header=”true”, inferschema=”true”). \
load(“sf_crime_dataset.csv”)
data.columns
数据包含九列:[Dates,Category,Descript,DayOfWeek,PdDistrict,Resolution,Address,X,Y]我们只需要 Category 和 Descript 字段来训练和测试数据集:
drop_data = [‘Dates’, ‘DayOfWeek’, ‘PdDistrict’, ‘Resolution’, ‘Address’, ‘X’, ‘Y’]
data = data.select([column for column in data.columns if column not in drop_data])
data.show(5)
现在我们拥有的数据集有文本数据,因此我们需要执行文本处理。三个重要的文本处理步骤是:标记数据,删除停用词并将单词向量化为向量。
我们将使用 RegexTokenizer 将使用正则表达式将句子标记为单词列表,因为标点符号或特殊字符不会添加任何含义,我们只保留包含字母数字内容的单词。有一些词语 the 会在文本中非常常见,但不会为语境添加任何含义。使用内置类删除这些单词(也称为停用单词)StopWordsRemover。
使用标准停用词[“http”,”https”,”amp”,”rt”,”t”,”c”,”the”]。最后使用了 CountVectorizer,将单词转换为数字向量(要素)。这些数字特征将用作训练模型的输入。数据的输出是 Category 列,但它也是 36 个不同类别的文本,因此,我们需要将其转换为一个热编码向量:PySpark StringIndexer 可以很容易地使用它。将所有这些转换添加到我们的数据中 Pipeline:
# regular expression tokenizer
re_Tokenizer = RT(inputCol=”Descript”,
outputCol=”words”, pattern=”\\W”)
# stop words
stop_words = [“http”,”https”,”amp”,”rt”,”t”,”c”,”the”]
stop_words_remover = SWR(inputCol=”words”,
outputCol=”filtered”).setStopWords(stop_words)
# bag of words count
count_vectors = CountVectorizer(inputCol=”filtered”,
outputCol=”features”, vocabSize=10000, minDF=5)
#One hot encoding the label
label_string_Idx = StringIndexer(inputCol = “Category”,
outputCol = “label”)
# Create the pipeline
pipeline = Pipeline(stages=[re_Tokenizer, stop_words_remover,
count_vectors, label_string_Idx])
# Fit the pipeline to data.
pipeline_fit = pipeline.fit(data)
dataset = pipeline_fit.transform(data)
dataset.show(5)
现在,数据准备就绪,我们将其分为训练和测试数据集:
# Split the data randomly into training and test data sets.
(trainingData, testData) = dataset.randomSplit([0.7, 0.3], seed = 100)
print(“Training Dataset Size: ” + str(trainingData.count()))
print(“Test Dataset Size: ” + str(testData.count()))
让我们为它拟合一个简单的逻辑回归模型。在测试数据集上,它提供 97%的准确性。
# Build the model
logistic_regrssor = LR(maxIter=20,
regParam=0.3, elasticNetParam=0)
# Train model with Training Data
model = logistic_regrssor.fit(trainingData)
# Make predictions on Test Data
predictions = model.transform(testData)
# evaluate the model on test data set
evaluator = MulticlassClassificationEvaluator(predictionCol=”prediction”)
evaluator.evaluate(predictions)
人工智能正在改变城市运营,交付和维护公共设施的方式,从照明和交通到连接和医疗服务。但是,选择不能有效协同工作或与其他城市服务相结合的技术可能会妨碍采用。要让城市真正受益于智能城市提供的潜力,需要改变思维方式。当局应该更长时间地规划并跨越多个部门。
巴塞罗那市是一个典型的例子,物联网系统的实施创造了约 47,000 个就业机会,节省了 4250 万欧元的水费,并通过智能停车每年额外增加了 3650 万欧元。我们可以很容易地看到,城市可以从利用人工智能的物联网解决方案的技术进步中获益匪浅。基于人工智能的物联网解决方案可以帮助连接城市,管理多个基础设施和公共服务。
在本文中,我们研究了从智能照明和道路交通到连接公共交通和废物管理的智能城市的用例。同时学会了使用有助于对旧金山 12 年期间犯罪报告中的数据进行分类的工具。如果你还想学习到更多的干货及实战案例,记得关注“愿码”公众号!